diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2015-04-23 00:14:02 +0200 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2015-05-05 10:07:34 -0400 |
commit | ef8edd4e87aeb3cc71dfd9da2f69437080f5410e (patch) | |
tree | 9146cdd7126ead59c57cacbaa04eda0f16761f65 | |
parent | 7b87085c1880c60aa3be5b3ec4572a0d93fd5537 (diff) | |
download | servo-ef8edd4e87aeb3cc71dfd9da2f69437080f5410e.tar.gz servo-ef8edd4e87aeb3cc71dfd9da2f69437080f5410e.zip |
Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8.
168 files changed, 2237 insertions, 2398 deletions
diff --git a/cargo-nightly-build b/cargo-nightly-build index d9ca78f0ecd..6e6ac373f0d 100644 --- a/cargo-nightly-build +++ b/cargo-nightly-build @@ -1 +1 @@ -2015-03-11 +2015-04-14 diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml index b3f0198396e..adca541b100 100644 --- a/components/canvas/Cargo.toml +++ b/components/canvas/Cargo.toml @@ -10,9 +10,6 @@ path = "lib.rs" [dependencies.azure] git = "https://github.com/servo/rust-azure" -[dependencies.cssparser] -git = "https://github.com/servo/rust-cssparser" - [dependencies.geom] git = "https://github.com/servo/rust-geom" @@ -31,4 +28,8 @@ branch = "servo" features = ["headless"] [dependencies.offscreen_gl_context] -git = "https://github.com/ecoal95/rust-offscreen-rendering-context" +git = "https://github.com/servo/rust-offscreen-rendering-context" + +[dependencies] +cssparser = "0.3.1" +num = "0.1.24" diff --git a/components/canvas/canvas_paint_task.rs b/components/canvas/canvas_paint_task.rs index 2740cdc330e..6906b96aa5c 100644 --- a/components/canvas/canvas_paint_task.rs +++ b/components/canvas/canvas_paint_task.rs @@ -13,13 +13,13 @@ use geom::point::Point2D; use geom::rect::Rect; use geom::size::Size2D; use gfx::color; +use num::ToPrimitive; use util::task::spawn_named; use util::vec::byte_swap; use cssparser::RGBA; use std::borrow::ToOwned; use std::mem; -use std::num::{Float, ToPrimitive}; use std::sync::mpsc::{channel, Sender}; impl<'a> CanvasPaintTask<'a> { diff --git a/components/canvas/lib.rs b/components/canvas/lib.rs index 17a5bcd0197..37aaef6d150 100644 --- a/components/canvas/lib.rs +++ b/components/canvas/lib.rs @@ -2,9 +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/. */ -#![feature(collections)] #![feature(core)] -#![feature(std_misc)] +#![feature(collections)] #![feature(rustc_private)] extern crate azure; @@ -13,6 +12,7 @@ extern crate geom; extern crate gfx; extern crate util; extern crate gleam; +extern crate num; extern crate offscreen_gl_context; extern crate glutin; diff --git a/components/canvas/webgl_paint_task.rs b/components/canvas/webgl_paint_task.rs index bfb97c9e076..fa399663c5d 100644 --- a/components/canvas/webgl_paint_task.rs +++ b/components/canvas/webgl_paint_task.rs @@ -163,7 +163,7 @@ impl WebGLPaintTask { } fn get_attrib_location(&self, program_id: u32, name: String, chan: Sender<i32> ) { - let attrib_location = gl::get_attrib_location(program_id, name.as_slice()); + let attrib_location = gl::get_attrib_location(program_id, &name); chan.send(attrib_location).unwrap(); } @@ -178,7 +178,7 @@ impl WebGLPaintTask { } fn get_uniform_location(&self, program_id: u32, name: String, chan: Sender<u32>) { - let uniform_location = gl::get_uniform_location(program_id, name.as_slice()); + let uniform_location = gl::get_uniform_location(program_id, &name); chan.send(uniform_location as u32).unwrap(); } @@ -202,8 +202,7 @@ impl WebGLPaintTask { let dst_start = y * stride; let src_start = (height - y - 1) * stride; let src_slice = &orig_pixels[src_start .. src_start + stride]; - copy_memory(&mut pixels[dst_start .. dst_start + stride], - &src_slice[..stride]); + copy_memory(&src_slice[..stride], &mut pixels[dst_start .. dst_start + stride]); } // rgba -> bgra @@ -213,7 +212,7 @@ impl WebGLPaintTask { fn shader_source(&self, shader_id: u32, source_lines: Vec<String>) { let mut lines: Vec<&[u8]> = source_lines.iter().map(|line| line.as_bytes()).collect(); - gl::shader_source(shader_id, lines.as_mut_slice()); + gl::shader_source(shader_id, &mut lines); } fn uniform_4fv(&self, uniform_id: u32, data: Vec<f32>) { diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml index c14652b1662..f035bc4ef17 100644 --- a/components/compositing/Cargo.toml +++ b/components/compositing/Cargo.toml @@ -59,7 +59,7 @@ git = "https://github.com/servo/rust-core-text" git = "https://github.com/servo/gleam" [dependencies.clipboard] -git = "https://github.com/aweinstock314/rust-x11-clipboard" +git = "https://github.com/servo/rust-x11-clipboard" [dependencies] url = "0.2.16" diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 3c9bbc6b8fa..e09b0685d41 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -39,7 +39,6 @@ use std::cmp; use std::collections::HashMap; use std::collections::hash_map::Entry::{Occupied, Vacant}; use std::mem as std_mem; -use std::num::Float; use std::rc::Rc; use std::slice::bytes::copy_memory; use std::sync::mpsc::Sender; @@ -1189,8 +1188,8 @@ impl<Window: WindowMethods> IOCompositor<Window> { let dst_start = y * stride; let src_start = (height - y - 1) * stride; let src_slice = &orig_pixels[src_start .. src_start + stride]; - copy_memory(&mut pixels[dst_start .. dst_start + stride], - &src_slice[..stride]); + copy_memory(&src_slice[..stride], + &mut pixels[dst_start .. dst_start + stride]); } let mut img = png::Image { width: width as u32, diff --git a/components/compositing/compositor_layer.rs b/components/compositing/compositor_layer.rs index 04653bca346..b5234e9d09e 100644 --- a/components/compositing/compositor_layer.rs +++ b/components/compositing/compositor_layer.rs @@ -20,7 +20,6 @@ use script_traits::CompositorEvent::{ClickEvent, MouseDownEvent, MouseMoveEvent, use script_traits::{ScriptControlChan, ConstellationControlMsg}; use msg::compositor_msg::{Epoch, LayerId, ScrollPolicy}; use msg::constellation_msg::PipelineId; -use std::num::Float; use std::rc::Rc; pub struct CompositorData { @@ -63,6 +62,7 @@ impl CompositorData { Rc::new(Layer::new(Rect::from_untyped(&layer_properties.rect), tile_size, to_layers_color(&layer_properties.background_color), + 1.0, new_compositor_data)) } } diff --git a/components/compositing/lib.rs b/components/compositing/lib.rs index 09a7eae774a..2b3a4172403 100644 --- a/components/compositing/lib.rs +++ b/components/compositing/lib.rs @@ -4,10 +4,7 @@ #![feature(box_syntax)] #![feature(core)] -#![feature(io)] -#![feature(old_io)] #![feature(rustc_private)] -#![feature(std_misc)] #[macro_use] extern crate log; diff --git a/components/compositing/scrolling.rs b/components/compositing/scrolling.rs index 89890fd2b27..11a0b8721f6 100644 --- a/components/compositing/scrolling.rs +++ b/components/compositing/scrolling.rs @@ -6,10 +6,8 @@ use compositor_task::{CompositorProxy, Msg}; -use std::old_io::timer; use std::sync::mpsc::{Receiver, Sender, channel}; -use std::thread::Builder; -use std::time::duration::Duration; +use std::thread::{Builder, sleep_ms}; use time; /// The amount of time in nanoseconds that we give to the painting thread to paint new tiles upon @@ -61,8 +59,8 @@ impl ScrollingTimer { match self.receiver.recv() { Ok(ToScrollingTimerMsg::ScrollEventProcessedMsg(timestamp)) => { let target = timestamp as i64 + TIMEOUT; - let delta = target - (time::precise_time_ns() as i64); - timer::sleep(Duration::nanoseconds(delta)); + let delta_ns = target - (time::precise_time_ns() as i64); + sleep_ms((delta_ns / 1000) as u32); self.compositor_proxy.send(Msg::ScrollTimeout(timestamp)); } Ok(ToScrollingTimerMsg::ExitMsg) | Err(_) => break, diff --git a/components/devtools/actor.rs b/components/devtools/actor.rs index 1fdd2af5c14..ee12104b209 100644 --- a/components/devtools/actor.rs +++ b/components/devtools/actor.rs @@ -8,6 +8,7 @@ use rustc_serialize::json; use std::any::{Any, TypeId}; use std::collections::HashMap; use std::cell::{Cell, RefCell}; +use std::marker::Reflect; use std::mem::{replace, transmute}; use std::net::TcpStream; use std::raw::TraitObject; @@ -26,10 +27,10 @@ pub trait Actor: Any { fn name(&self) -> String; } -impl Actor { +impl Actor + Send { /// Returns true if the boxed type is the same as `T` #[inline] - pub fn is<T: 'static>(&self) -> bool { + pub fn is<T: Reflect + 'static>(&self) -> bool { // Get TypeId of the type this function is instantiated with let t = TypeId::of::<T>(); @@ -43,7 +44,7 @@ impl Actor { /// Returns some reference to the boxed value if it is of type `T`, or /// `None` if it isn't. #[inline] - pub fn downcast_ref<T: 'static>(&self) -> Option<&T> { + pub fn downcast_ref<T: Reflect + 'static>(&self) -> Option<&T> { if self.is::<T>() { unsafe { // Get the raw representation of the trait object @@ -60,7 +61,7 @@ impl Actor { /// Returns some mutable reference to the boxed value if it is of type `T`, or /// `None` if it isn't. #[inline] - pub fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T> { + pub fn downcast_mut<T: Reflect + 'static>(&mut self) -> Option<&mut T> { if self.is::<T>() { unsafe { // Get the raw representation of the trait object @@ -168,13 +169,13 @@ impl ActorRegistry { } /// Find an actor by registered name - pub fn find<'a, T: 'static>(&'a self, name: &str) -> &'a T { + pub fn find<'a, T: Reflect + 'static>(&'a self, name: &str) -> &'a T { let actor = self.actors.get(&name.to_string()).unwrap(); actor.downcast_ref::<T>().unwrap() } /// Find an actor by registered name - pub fn find_mut<'a, T: 'static>(&'a mut self, name: &str) -> &'a mut T { + pub fn find_mut<'a, T: Reflect + 'static>(&'a mut self, name: &str) -> &'a mut T { let actor = self.actors.get_mut(&name.to_string()).unwrap(); actor.downcast_mut::<T>().unwrap() } diff --git a/components/devtools/actors/console.rs b/components/devtools/actors/console.rs index 4939cfa47da..834ccc99235 100644 --- a/components/devtools/actors/console.rs +++ b/components/devtools/actors/console.rs @@ -18,7 +18,6 @@ use collections::BTreeMap; use core::cell::RefCell; use rustc_serialize::json::{self, Json, ToJson}; use std::net::TcpStream; -use std::num::Float; use std::sync::mpsc::{channel, Sender}; #[derive(RustcEncodable)] @@ -251,7 +250,7 @@ impl Actor for ConsoleActor { m.insert("type".to_string(), "Infinity".to_string().to_json()); } Json::Object(m) - } else if val == Float::neg_zero() { + } else if val == 0. && val.is_sign_negative() { let mut m = BTreeMap::new(); m.insert("type".to_string(), "-0".to_string().to_json()); Json::Object(m) diff --git a/components/devtools/actors/inspector.rs b/components/devtools/actors/inspector.rs index 5519652cf06..3dbaf5c6d43 100644 --- a/components/devtools/actors/inspector.rs +++ b/components/devtools/actors/inspector.rs @@ -16,7 +16,6 @@ use msg::constellation_msg::PipelineId; use rustc_serialize::json::{self, Json, ToJson}; use std::cell::RefCell; use std::net::TcpStream; -use std::num::Float; use std::sync::mpsc::{channel, Sender}; pub struct InspectorActor { diff --git a/components/devtools/actors/timeline.rs b/components/devtools/actors/timeline.rs index 6ea92626ae3..12c361b279d 100644 --- a/components/devtools/actors/timeline.rs +++ b/components/devtools/actors/timeline.rs @@ -2,15 +2,14 @@ * 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 core::iter::FromIterator; use msg::constellation_msg::PipelineId; use rustc_serialize::{json, Encoder, Encodable}; use std::cell::RefCell; use std::collections::{HashMap, VecDeque}; +use std::mem; use std::net::TcpStream; -use std::old_io::timer::sleep; +use std::thread::sleep_ms; use std::sync::{Arc, Mutex}; -use std::time::duration::Duration; use std::sync::mpsc::{channel, Sender, Receiver}; use time::PreciseTime; @@ -117,7 +116,7 @@ impl Encodable for HighResolutionStamp { } } -static DEFAULT_TIMELINE_DATA_PULL_TIMEOUT: usize = 200; //ms +static DEFAULT_TIMELINE_DATA_PULL_TIMEOUT: u32 = 200; //ms impl TimelineActor { pub fn new(name: String, @@ -214,7 +213,7 @@ impl TimelineActor { } emitter.send(); - sleep(Duration::milliseconds(DEFAULT_TIMELINE_DATA_PULL_TIMEOUT as i64)); + sleep_ms(DEFAULT_TIMELINE_DATA_PULL_TIMEOUT); } }); } @@ -344,7 +343,7 @@ impl Emitter { let end_time = PreciseTime::now(); let reply = MarkersEmitterReply { __type__: "markers".to_string(), - markers: Vec::from_iter(self.markers.drain()), + markers: mem::replace(&mut self.markers, Vec::new()), from: self.from.clone(), endTime: HighResolutionStamp::new(self.start_stamp, end_time), }; diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs index e2d06a7665b..348c4fdeb12 100644 --- a/components/devtools/lib.rs +++ b/components/devtools/lib.rs @@ -11,10 +11,7 @@ #![crate_type = "rlib"] #![feature(box_syntax, core, rustc_private)] -#![feature(collections, std_misc)] -#![feature(io)] -#![feature(net)] -#![feature(old_io)] +#![feature(collections)] #![allow(non_snake_case)] @@ -24,7 +21,7 @@ extern crate log; extern crate collections; extern crate core; extern crate devtools_traits; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate msg; extern crate time; extern crate util; @@ -46,6 +43,7 @@ use util::task::spawn_named; use std::borrow::ToOwned; use std::cell::RefCell; use std::collections::HashMap; +use std::error::Error; use std::sync::mpsc::{channel, Receiver, Sender, RecvError}; use std::net::{TcpListener, TcpStream, Shutdown}; use std::sync::{Arc, Mutex}; @@ -128,7 +126,7 @@ fn run_server(sender: Sender<DevtoolsControlMsg>, 'outer: loop { match stream.read_json_packet() { - Ok(json_packet) => { + Ok(Some(json_packet)) => { match actors.lock().unwrap().handle_message(json_packet.as_object().unwrap(), &mut stream) { Ok(()) => {}, @@ -139,6 +137,10 @@ fn run_server(sender: Sender<DevtoolsControlMsg>, } } } + Ok(None) => { + println!("error: EOF"); + break 'outer + } Err(e) => { println!("error: {}", e.description()); break 'outer @@ -244,7 +246,7 @@ fn run_server(sender: Sender<DevtoolsControlMsg>, id: PipelineId, actor_pipelines: &HashMap<PipelineId, String>) -> String { let actors = actors.lock().unwrap(); - let ref tab_actor_name = (*actor_pipelines)[id]; + let ref tab_actor_name = (*actor_pipelines)[&id]; let tab_actor = actors.find::<TabActor>(tab_actor_name); let console_actor_name = tab_actor.console.clone(); return console_actor_name; diff --git a/components/devtools/protocol.rs b/components/devtools/protocol.rs index f8dfea7eac6..daa7c19fba6 100644 --- a/components/devtools/protocol.rs +++ b/components/devtools/protocol.rs @@ -8,13 +8,12 @@ use rustc_serialize::{json, Encodable}; use rustc_serialize::json::Json; -use std::io::{self, Read, ReadExt, Write, ErrorKind}; +use std::io::{self, Read, Write}; use std::net::TcpStream; -use std::num; pub trait JsonPacketStream { fn write_json_packet<'a, T: Encodable>(&mut self, obj: &T); - fn read_json_packet(&mut self) -> io::Result<Json>; + fn read_json_packet(&mut self) -> io::Result<Option<Json>>; } impl JsonPacketStream for TcpStream { @@ -26,25 +25,25 @@ impl JsonPacketStream for TcpStream { self.write_all(s.as_bytes()).unwrap(); } - fn read_json_packet<'a>(&mut self) -> io::Result<Json> { + fn read_json_packet<'a>(&mut self) -> io::Result<Option<Json>> { // https://wiki.mozilla.org/Remote_Debugging_Protocol_Stream_Transport // In short, each JSON packet is [ascii length]:[JSON data of given length] let mut buffer = vec!(); loop { let mut buf = [0]; let byte = match try!(self.read(&mut buf)) { - 0 => return Err(io::Error::new(ErrorKind::Other, "EOF", None)), + 0 => return Ok(None), // EOF 1 => buf[0], _ => unreachable!(), }; match byte { b':' => { let packet_len_str = String::from_utf8(buffer).unwrap(); - let packet_len = num::from_str_radix(&packet_len_str, 10).unwrap(); + let packet_len = u64::from_str_radix(&packet_len_str, 10).unwrap(); let mut packet = String::new(); self.take(packet_len).read_to_string(&mut packet).unwrap(); println!("{}", packet); - return Ok(Json::from_str(&packet).unwrap()) + return Ok(Some(Json::from_str(&packet).unwrap())) }, c => buffer.push(c), } diff --git a/components/devtools_traits/lib.rs b/components/devtools_traits/lib.rs index 659c6983e36..9be18bf5e19 100644 --- a/components/devtools_traits/lib.rs +++ b/components/devtools_traits/lib.rs @@ -9,12 +9,10 @@ #![crate_name = "devtools_traits"] #![crate_type = "rlib"] -#![feature(net)] - #![allow(non_snake_case)] extern crate msg; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate url; extern crate util; extern crate time; diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml index aaefa6c900c..a8551de5965 100644 --- a/components/gfx/Cargo.toml +++ b/components/gfx/Cargo.toml @@ -61,7 +61,6 @@ git = "https://github.com/servo/rust-core-text" [dependencies.skia] git = "https://github.com/servo/skia" -branch = "upstream-2014-06-16" [dependencies.script_traits] path = "../script_traits" diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs index b18a6bc054a..f3cf053daa8 100644 --- a/components/gfx/display_list/mod.rs +++ b/components/gfx/display_list/mod.rs @@ -40,7 +40,7 @@ use util::linked_list::prepend_from; use util::geometry::{self, Au, MAX_RECT, ZERO_RECT}; use util::mem::HeapSizeOf; use util::range::Range; -use util::smallvec::{SmallVec, SmallVec8}; +use util::smallvec::SmallVec8; use std::fmt; use std::slice::Iter; use std::sync::Arc; @@ -305,8 +305,7 @@ impl StackingContext { for kid in display_list.children.iter() { positioned_children.push((*kid).clone()); } - positioned_children.as_slice_mut() - .sort_by(|this, other| this.z_index.cmp(&other.z_index)); + positioned_children.sort_by(|this, other| this.z_index.cmp(&other.z_index)); // Set up our clip rect and transform. let old_transform = paint_subcontext.draw_target.get_transform(); diff --git a/components/gfx/filters.rs b/components/gfx/filters.rs index cfabcf20324..2882adfb323 100644 --- a/components/gfx/filters.rs +++ b/components/gfx/filters.rs @@ -10,7 +10,6 @@ use azure::azure_hl::{FilterNode, FilterType, LinearTransferAttribute, LinearTra use azure::azure_hl::{Matrix5x4, TableTransferAttribute, TableTransferInput}; use azure::azure_hl::{GaussianBlurAttribute, GaussianBlurInput}; -use std::num::Float; use style::computed_values::filter; use util::geometry::Au; diff --git a/components/gfx/font.rs b/components/gfx/font.rs index a44b08bce1e..52c3f95c53a 100644 --- a/components/gfx/font.rs +++ b/components/gfx/font.rs @@ -9,7 +9,7 @@ use std::slice; use std::rc::Rc; use std::cell::RefCell; use util::cache::HashCache; -use util::smallvec::{SmallVec, SmallVec8}; +use util::smallvec::SmallVec8; use style::computed_values::{font_stretch, font_variant, font_weight}; use style::properties::style_structs::Font as FontStyle; use std::sync::Arc; @@ -185,7 +185,7 @@ impl Font { pub fn glyph_index(&self, codepoint: char) -> Option<GlyphId> { let codepoint = match self.variant { - font_variant::T::small_caps => codepoint.to_uppercase(), + font_variant::T::small_caps => codepoint.to_uppercase().next().unwrap(), //FIXME: #5938 font_variant::T::normal => codepoint, }; self.handle.glyph_index(codepoint) @@ -222,7 +222,8 @@ impl FontGroup { assert!(self.fonts.len() > 0); // TODO(Issue #177): Actually fall back through the FontGroup when a font is unsuitable. - TextRun::new(&mut *self.fonts.get(0).borrow_mut(), text.clone(), options) + let mut font_borrow = self.fonts[0].borrow_mut(); + TextRun::new(&mut *font_borrow, text.clone(), options) } } diff --git a/components/gfx/font_cache_task.rs b/components/gfx/font_cache_task.rs index 250eb484a55..5732e6a79cf 100644 --- a/components/gfx/font_cache_task.rs +++ b/components/gfx/font_cache_task.rs @@ -191,7 +191,7 @@ impl FontCache { let s = self.local_families.get_mut(family_name).unwrap(); if s.templates.len() == 0 { - get_variations_for_family(&family_name, |path| { + get_variations_for_family(family_name, |path| { s.add_template(&path, None); }); } diff --git a/components/gfx/font_context.rs b/components/gfx/font_context.rs index 534c844cb87..b10a90c0fac 100644 --- a/components/gfx/font_context.rs +++ b/components/gfx/font_context.rs @@ -15,7 +15,7 @@ use platform::font_template::FontTemplateData; use util::cache::HashCache; use util::fnv::FnvHasher; use util::geometry::Au; -use util::smallvec::{SmallVec, SmallVec8}; +use util::smallvec::SmallVec8; use std::borrow::{self, ToOwned}; use std::cell::RefCell; @@ -45,7 +45,7 @@ fn create_scaled_font(template: &Arc<FontTemplateData>, pt_size: Au) -> ScaledFo ScaledFont::new(BackendType::Skia, &cgfont, pt_size.to_subpx() as AzFloat) } -static SMALL_CAPS_SCALE_FACTOR: f64 = 0.8; // Matches FireFox (see gfxFont.h) +static SMALL_CAPS_SCALE_FACTOR: f32 = 0.8; // Matches FireFox (see gfxFont.h) struct LayoutFontCacheEntry { family: String, @@ -160,7 +160,7 @@ impl FontContext { let mut fonts = SmallVec8::new(); - for family in style.font_family.iter() { + for family in style.font_family.0.iter() { // GWTODO: Check on real pages if this is faster as Vec() or HashMap(). let mut cache_hit = false; for cached_font_entry in self.layout_font_cache.iter() { diff --git a/components/gfx/lib.rs b/components/gfx/lib.rs index d44d52b5410..52d5a705de8 100644 --- a/components/gfx/lib.rs +++ b/components/gfx/lib.rs @@ -6,12 +6,10 @@ #![feature(box_syntax)] #![feature(collections)] #![feature(core)] -#![cfg_attr(any(target_os="linux", target_os = "android"), feature(io))] #![feature(plugin)] #![feature(rustc_private)] #![feature(std_misc)] -#![feature(unicode)] -#![feature(unsafe_destructor)] +#![feature(str_char)] #![plugin(plugins)] @@ -28,8 +26,7 @@ extern crate stb_image; extern crate png; extern crate profile_traits; extern crate script_traits; -extern crate "rustc-serialize" as rustc_serialize; -extern crate unicode; +extern crate rustc_serialize; extern crate net_traits; #[macro_use] extern crate util; diff --git a/components/gfx/paint_context.rs b/components/gfx/paint_context.rs index 1999cc5cf66..6130cc7a1f7 100644 --- a/components/gfx/paint_context.rs +++ b/components/gfx/paint_context.rs @@ -34,7 +34,6 @@ use png::PixelsByColorType; use std::default::Default; use std::f32; use std::mem; -use std::num::Float; use std::ptr; use std::sync::Arc; use style::computed_values::{border_style, filter, image_rendering, mix_blend_mode}; diff --git a/components/gfx/paint_task.rs b/components/gfx/paint_task.rs index ba07f89bfa4..fbdfbe82d5d 100644 --- a/components/gfx/paint_task.rs +++ b/components/gfx/paint_task.rs @@ -33,7 +33,6 @@ use std::sync::Arc; use std::sync::mpsc::{Receiver, Sender, channel}; use util::geometry::{Au, ZERO_POINT}; use util::opts; -use util::smallvec::SmallVec; use util::task::spawn_named_with_send_on_failure; use util::task_state; use util::task::spawn_named; diff --git a/components/gfx/platform/freetype/font.rs b/components/gfx/platform/freetype/font.rs index 60587acb297..2d4b760294f 100644 --- a/components/gfx/platform/freetype/font.rs +++ b/components/gfx/platform/freetype/font.rs @@ -28,7 +28,6 @@ use freetype::tt_os2::TT_OS2; use libc::c_char; use std::mem; -use std::num::Float; use std::ptr; use std::sync::Arc; @@ -56,7 +55,6 @@ pub struct FontHandle { pub handle: FontContextHandle } -#[unsafe_destructor] impl Drop for FontHandle { fn drop(&mut self) { assert!(!self.face.is_null()); diff --git a/components/gfx/platform/macos/font.rs b/components/gfx/platform/macos/font.rs index d38a3410260..75115d287be 100644 --- a/components/gfx/platform/macos/font.rs +++ b/components/gfx/platform/macos/font.rs @@ -27,7 +27,6 @@ use core_text::font::CTFont; use core_text::font_descriptor::{SymbolicTraitAccessors, TraitAccessors}; use core_text::font_descriptor::{kCTFontDefaultOrientation}; -use std::num::Float; use std::ptr; use std::sync::Arc; diff --git a/components/gfx/platform/macos/font_template.rs b/components/gfx/platform/macos/font_template.rs index a4cda3b5a66..5bb3e1f6bfe 100644 --- a/components/gfx/platform/macos/font_template.rs +++ b/components/gfx/platform/macos/font_template.rs @@ -34,7 +34,7 @@ impl FontTemplateData { } }, None => { - Some(core_text::font::new_from_name(&identifier, 0.0).unwrap()) + Some(core_text::font::new_from_name(identifier, 0.0).unwrap()) } }; diff --git a/components/gfx/text/glyph.rs b/components/gfx/text/glyph.rs index d69236b0ef5..131ac03d309 100644 --- a/components/gfx/text/glyph.rs +++ b/components/gfx/text/glyph.rs @@ -6,8 +6,6 @@ use geom::point::Point2D; use std::cmp::{Ordering, PartialOrd}; use std::iter::repeat; use std::mem; -use std::num::{ToPrimitive, NumCast}; -use std::ops::{Add, Sub, Mul, Neg, Div, Rem, BitAnd, BitOr, BitXor, Shl, Shr, Not}; use std::u16; use std::vec::Vec; use util::geometry::Au; @@ -156,10 +154,9 @@ fn is_simple_glyph_id(id: GlyphId) -> bool { } fn is_simple_advance(advance: Au) -> bool { - match advance.to_u32() { - Some(unsigned_au) => - (unsigned_au & (GLYPH_ADVANCE_MASK >> GLYPH_ADVANCE_SHIFT)) == unsigned_au, - None => false + advance >= Au(0) && { + let unsigned_au = advance.0 as u32; + (unsigned_au & (GLYPH_ADVANCE_MASK >> GLYPH_ADVANCE_SHIFT)) == unsigned_au } } @@ -171,7 +168,7 @@ impl GlyphEntry { // getter methods #[inline(always)] fn advance(&self) -> Au { - NumCast::from((self.value & GLYPH_ADVANCE_MASK) >> GLYPH_ADVANCE_SHIFT).unwrap() + Au(((self.value & GLYPH_ADVANCE_MASK) >> GLYPH_ADVANCE_SHIFT) as i32) } fn id(&self) -> GlyphId { @@ -731,7 +728,7 @@ impl<'a> GlyphStore { // FIXME(pcwalton): This can overflow for very large font-sizes. let advance = ((entry.value & GLYPH_ADVANCE_MASK) >> GLYPH_ADVANCE_SHIFT) + - Au::from_frac_px(space).to_u32().unwrap(); + Au::from_frac_px(space).0 as u32; entry.value = (entry.value & !GLYPH_ADVANCE_MASK) | (advance << GLYPH_ADVANCE_SHIFT); } diff --git a/components/gfx/text/shaping/harfbuzz.rs b/components/gfx/text/shaping/harfbuzz.rs index 4f473b96174..37b20af17ec 100644 --- a/components/gfx/text/shaping/harfbuzz.rs +++ b/components/gfx/text/shaping/harfbuzz.rs @@ -154,7 +154,6 @@ pub struct Shaper { font_and_shaping_options: Box<FontAndShapingOptions>, } -#[unsafe_destructor] impl Drop for Shaper { fn drop(&mut self) { unsafe { diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml index 27ca46a7f49..fa527f4d5c9 100644 --- a/components/layout/Cargo.toml +++ b/components/layout/Cargo.toml @@ -43,9 +43,6 @@ path = "../profile_traits" [dependencies.util] path = "../util" -[dependencies.cssparser] -git = "https://github.com/servo/rust-cssparser" - [dependencies.selectors] git = "https://github.com/servo/rust-selectors" @@ -70,4 +67,4 @@ url = "0.2.16" bitflags = "*" rustc-serialize = "0.3" libc = "*" - +cssparser = "0.3.1" diff --git a/components/layout/animation.rs b/components/layout/animation.rs index 9cd46d4bcde..4bf5dd7ab6e 100644 --- a/components/layout/animation.rs +++ b/components/layout/animation.rs @@ -31,7 +31,7 @@ pub fn start_transitions_if_applicable(new_animations_sender: &Sender<Animation> property_animation.update(new_style, 0.0); // Kick off the animation. - let now = clock_ticks::precise_time_s(); + let now = clock_ticks::precise_time_s() as f32; let animation_style = new_style.get_animation(); let start_time = now + animation_style.transition_delay.0.get_mod(i).seconds(); new_animations_sender.send(Animation { @@ -66,7 +66,7 @@ pub fn recalc_style_for_animation(flow: &mut Flow, animation: &Animation) { return } - let now = clock_ticks::precise_time_s(); + let now = clock_ticks::precise_time_s() as f32; let mut progress = (now - animation.start_time) / animation.duration(); if progress > 1.0 { progress = 1.0 @@ -91,7 +91,7 @@ pub fn recalc_style_for_animation(flow: &mut Flow, animation: &Animation) { /// Handles animation updates. pub fn tick_all_animations(layout_task: &LayoutTask, rw_data: &mut LayoutTaskData) { let running_animations = mem::replace(&mut rw_data.running_animations, Vec::new()); - let now = clock_ticks::precise_time_s(); + let now = clock_ticks::precise_time_s() as f32; for running_animation in running_animations.into_iter() { layout_task.tick_animation(&running_animation, rw_data); diff --git a/components/layout/construct.rs b/components/layout/construct.rs index c0480e8562c..af6ac911b5b 100644 --- a/components/layout/construct.rs +++ b/components/layout/construct.rs @@ -1480,13 +1480,12 @@ impl FlowConstructionUtils for FlowRef { /// /// This must not be public because only the layout constructor can do this. fn add_new_child(&mut self, mut new_child: FlowRef) { - let base = flow::mut_base(&mut **self); - { let kid_base = flow::mut_base(&mut *new_child); kid_base.parallel.parent = parallel::mut_owned_flow_to_unsafe_flow(self); } + let base = flow::mut_base(&mut **self); base.children.push_back(new_child); let _ = base.parallel.children_count.fetch_add(1, Ordering::Relaxed); } diff --git a/components/layout/css/matching.rs b/components/layout/css/matching.rs index 27533070bdf..f3f29d1b2e7 100644 --- a/components/layout/css/matching.rs +++ b/components/layout/css/matching.rs @@ -34,7 +34,7 @@ use style::selector_matching::{Stylist, DeclarationBlock}; use util::arc_ptr_eq; use util::cache::{LRUCache, SimpleHashCache}; use util::opts; -use util::smallvec::{SmallVec, SmallVec16}; +use util::smallvec::SmallVec16; use util::vec::ForgetfulSink; pub struct ApplicableDeclarations { @@ -689,7 +689,7 @@ impl<'ln> MatchMethods for LayoutNode<'ln> { let mut damage = self.cascade_node_pseudo_element( layout_context, parent_style, - applicable_declarations.normal.as_slice(), + &applicable_declarations.normal, &mut layout_data.shared_data.style, applicable_declarations_cache, new_animations_sender, diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index bf819c4378d..b82852e24e3 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -39,8 +39,6 @@ use png::{self, PixelsByColorType}; use std::cmp; use std::default::Default; use std::iter::repeat; -use std::num::Float; -use std::num::ToPrimitive; use std::sync::Arc; use std::sync::mpsc::channel; use style::computed_values::filter::Filter; @@ -247,13 +245,13 @@ pub trait FragmentDisplayListBuilding { fn handle_overlapping_radii(size: &Size2D<Au>, radii: &BorderRadii<Au>) -> BorderRadii<Au> { // No two corners' border radii may add up to more than the length of the edge // between them. To prevent that, all radii are scaled down uniformly. - fn scale_factor(radius_a: Au, radius_b: Au, edge_length: Au) -> f64 { + fn scale_factor(radius_a: Au, radius_b: Au, edge_length: Au) -> f32 { let required = radius_a + radius_b; if required <= edge_length { 1.0 } else { - to_frac_px(edge_length) / to_frac_px(required) + edge_length.to_frac32_px() / required.to_frac32_px() } } @@ -503,10 +501,10 @@ impl FragmentDisplayListBuilding for Fragment { // between the starting point and the ending point. let delta = match gradient.angle_or_corner { AngleOrCorner::Angle(angle) => { - Point2D(Au((angle.radians().sin() * - absolute_bounds.size.width.to_f64().unwrap() / 2.0) as i32), - Au((-angle.radians().cos() * - absolute_bounds.size.height.to_f64().unwrap() / 2.0) as i32)) + Point2D(Au::from_frac32_px(angle.radians().sin() * + absolute_bounds.size.width.to_frac32_px() / 2.0), + Au::from_frac32_px(-angle.radians().cos() * + absolute_bounds.size.height.to_frac32_px() / 2.0)) } AngleOrCorner::Corner(horizontal, vertical) => { let x_factor = match horizontal { @@ -517,14 +515,14 @@ impl FragmentDisplayListBuilding for Fragment { VerticalDirection::Top => -1, VerticalDirection::Bottom => 1, }; - Point2D(Au(x_factor * absolute_bounds.size.width.to_i32().unwrap() / 2), - Au(y_factor * absolute_bounds.size.height.to_i32().unwrap() / 2)) + Point2D(absolute_bounds.size.width * x_factor / 2, + absolute_bounds.size.height * y_factor / 2) } }; // This is the length of the gradient line. - let length = Au((delta.x.to_f64().unwrap() * 2.0).hypot(delta.y.to_f64().unwrap() * 2.0) - as i32); + let length = Au::from_frac32_px( + (delta.x.to_frac32_px() * 2.0).hypot(delta.y.to_frac32_px() * 2.0)); // Determine the position of each stop per CSS-IMAGES § 3.4. // diff --git a/components/layout/flow.rs b/components/layout/flow.rs index a745ca8010b..f868983e6c2 100644 --- a/components/layout/flow.rs +++ b/components/layout/flow.rs @@ -55,7 +55,6 @@ use rustc_serialize::{Encoder, Encodable}; use std::fmt; use std::iter::Zip; use std::mem; -use std::num::FromPrimitive; use std::raw; use std::slice::IterMut; use std::sync::Arc; @@ -582,13 +581,13 @@ impl FlowFlags { #[inline] pub fn text_align(self) -> text_align::T { - FromPrimitive::from_u32((self & TEXT_ALIGN).bits() >> TEXT_ALIGN_SHIFT).unwrap() + text_align::T::from_u32((self & TEXT_ALIGN).bits() >> TEXT_ALIGN_SHIFT).unwrap() } #[inline] pub fn set_text_align(&mut self, value: text_align::T) { *self = (*self & !TEXT_ALIGN) | - FlowFlags::from_bits((value as u32) << TEXT_ALIGN_SHIFT).unwrap(); + FlowFlags::from_bits(value.to_u32() << TEXT_ALIGN_SHIFT).unwrap(); } #[inline] @@ -876,7 +875,6 @@ impl Encodable for BaseFlow { } } -#[unsafe_destructor] impl Drop for BaseFlow { fn drop(&mut self) { if self.strong_ref_count.load(Ordering::SeqCst) != 0 && diff --git a/components/layout/flow_ref.rs b/components/layout/flow_ref.rs index 9a8e2bb580e..6b323c15f6f 100644 --- a/components/layout/flow_ref.rs +++ b/components/layout/flow_ref.rs @@ -78,7 +78,8 @@ impl DerefMut for FlowRef { impl Drop for FlowRef { fn drop(&mut self) { unsafe { - if self.object.vtable.is_null() { + if self.object.vtable.is_null() || + self.object.vtable as usize == mem::POST_DROP_USIZE { return } if flow::base(&**self).strong_ref_count().fetch_sub(1, Ordering::Release) != 1 { @@ -102,7 +103,7 @@ impl Drop for FlowRef { let object_align = vtable[2]; let fake_data = heap::allocate(object_size, object_align); - ptr::copy(fake_data, flow_ref.object.data as *const u8, object_size); + ptr::copy(flow_ref.object.data as *const u8, fake_data, object_size); let fake_box = raw::TraitObject { vtable: flow_ref.object.vtable, data: fake_data as *mut () }; let fake_flow = mem::transmute::<raw::TraitObject, Box<Flow>>(fake_box); @@ -181,7 +182,8 @@ impl Clone for WeakFlowRef { impl Drop for WeakFlowRef { fn drop(&mut self) { unsafe { - if self.object.vtable.is_null() { + if self.object.vtable.is_null() || + self.object.vtable as usize == mem::POST_DROP_USIZE { return } diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 7ad0e8895ad..ea090ea55ea 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -34,7 +34,6 @@ use std::borrow::ToOwned; use std::cmp::{max, min}; use std::collections::LinkedList; use std::fmt; -use std::num::ToPrimitive; use std::str::FromStr; use std::sync::mpsc::Sender; use std::sync::{Arc, Mutex}; @@ -51,7 +50,6 @@ use url::Url; use util::geometry::{self, Au, ZERO_POINT}; use util::logical_geometry::{LogicalRect, LogicalSize, LogicalMargin, WritingMode}; use util::range::*; -use util::smallvec::SmallVec; use util::str::is_whitespace; use util; @@ -453,8 +451,8 @@ impl ReplacedImageFragmentInfo { if intrinsic_height == Au(0) { intrinsic_width } else { - let ratio = intrinsic_width.to_f32().unwrap() / - intrinsic_height.to_f32().unwrap(); + let ratio = intrinsic_width.to_frac32_px() / + intrinsic_height.to_frac32_px(); let specified_height = ReplacedImageFragmentInfo::style_length( style_block_size, @@ -468,7 +466,7 @@ impl ReplacedImageFragmentInfo { style_min_block_size, style_max_block_size, Au(0)); - Au((specified_height.to_f32().unwrap() * ratio) as i32) + Au::from_frac32_px(specified_height.to_frac32_px() * ratio) } }, MaybeAuto::Specified(w) => w, @@ -505,8 +503,8 @@ impl ReplacedImageFragmentInfo { MaybeAuto::Auto => { let intrinsic_width = fragment_inline_size; let intrinsic_height = fragment_block_size; - let scale = intrinsic_width.to_f32().unwrap() / inline_size.to_f32().unwrap(); - Au((intrinsic_height.to_f32().unwrap() / scale) as i32) + let scale = intrinsic_width.to_frac32_px() / inline_size.to_frac32_px(); + Au::from_frac32_px(intrinsic_height.to_frac32_px() / scale) }, MaybeAuto::Specified(h) => { h diff --git a/components/layout/generated_content.rs b/components/layout/generated_content.rs index d0cf0af98d1..e2ba7dbfe4b 100644 --- a/components/layout/generated_content.rs +++ b/components/layout/generated_content.rs @@ -21,7 +21,7 @@ use std::sync::Arc; use style::computed_values::content::ContentItem; use style::computed_values::{display, list_style_type}; use style::properties::ComputedValues; -use util::smallvec::{SmallVec, SmallVec8}; +use util::smallvec::SmallVec8; // Decimal styles per CSS-COUNTER-STYLES § 6.1: static DECIMAL: [char; 10] = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ]; @@ -530,9 +530,7 @@ fn push_alphabetic_representation(mut value: i32, system: &[char], accumulator: value = ((value as usize) / system.len()) as i32; } - for i in (0..string.len()).rev() { - accumulator.push(*string.get(i)) - } + accumulator.extend(string.iter().cloned().rev()) } /// Pushes the string that represents the value rendered using the given *numeric system* onto the @@ -554,8 +552,6 @@ fn push_numeric_representation(mut value: i32, system: &[char], accumulator: &mu } // Step 3. - for &ch in string.iter().rev() { - accumulator.push(ch) - } + accumulator.extend(string.iter().cloned().rev()) } diff --git a/components/layout/incremental.rs b/components/layout/incremental.rs index 9d989c7b65a..f9fda729cfe 100644 --- a/components/layout/incremental.rs +++ b/components/layout/incremental.rs @@ -210,7 +210,10 @@ impl<'a> LayoutDamageComputation for &'a mut (Flow + 'a) { .insert(self_base.restyle_damage.damage_for_child( is_absolutely_positioned, child_is_absolutely_positioned)); - special_damage.insert(kid.compute_layout_damage()); + { + let kid: &mut Flow = kid; + special_damage.insert(kid.compute_layout_damage()); + } self_base.restyle_damage .insert(flow::base(kid).restyle_damage.damage_for_parent( child_is_absolutely_positioned)); diff --git a/components/layout/inline.rs b/components/layout/inline.rs index 8c0d5723695..82a236ac001 100644 --- a/components/layout/inline.rs +++ b/components/layout/inline.rs @@ -25,8 +25,6 @@ use gfx::text::text_run::TextRun; use std::cmp::max; use std::fmt; use std::mem; -use std::num::ToPrimitive; -use std::ops::{Add, Sub, Mul, Div, Rem, Neg, Shl, Shr, Not, BitOr, BitAnd, BitXor}; use std::sync::Arc; use std::u16; use style::computed_values::{display, overflow_x, text_align, text_justify, text_overflow}; @@ -38,8 +36,8 @@ use util::range::{Range, RangeIndex}; use util; // From gfxFontConstants.h in Firefox -static FONT_SUBSCRIPT_OFFSET_RATIO: f64 = 0.20; -static FONT_SUPERSCRIPT_OFFSET_RATIO: f64 = 0.34; +static FONT_SUBSCRIPT_OFFSET_RATIO: f32 = 0.20; +static FONT_SUPERSCRIPT_OFFSET_RATIO: f32 = 0.34; /// `Line`s are represented as offsets into the child list, rather than /// as an object that "owns" fragments. Choosing a different set of line @@ -928,7 +926,7 @@ impl InlineFlow { text_align::T::left | text_align::T::right => unreachable!() } - for fragment_index in line.range.begin()..line.range.end() { + for fragment_index in line.range.each_index() { let fragment = fragments.get_mut(fragment_index.to_usize()); let size = fragment.border_box.size; fragment.border_box = LogicalRect::new(fragment.style.writing_mode, @@ -1017,7 +1015,7 @@ impl InlineFlow { line_distance_from_flow_block_start: Au, baseline_distance_from_block_start: Au, largest_depth_below_baseline: Au) { - for fragment_index in line.range.begin()..line.range.end() { + for fragment_index in line.range.each_index() { // If any of the inline styles say `top` or `bottom`, adjust the vertical align // appropriately. // @@ -1295,7 +1293,7 @@ impl Flow for InlineFlow { let (mut largest_block_size_for_top_fragments, mut largest_block_size_for_bottom_fragments) = (Au(0), Au(0)); - for fragment_index in line.range.begin()..line.range.end() { + for fragment_index in line.range.each_index() { let fragment = &mut self.fragments.fragments[fragment_index.to_usize()]; let InlineMetrics { diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs index 0850b71f0d6..6557b6c26c7 100644 --- a/components/layout/layout_task.rs +++ b/components/layout/layout_task.rs @@ -73,7 +73,6 @@ use util::geometry::{Au, MAX_RECT}; use util::logical_geometry::LogicalPoint; use util::mem::HeapSizeOf; use util::opts; -use util::smallvec::SmallVec; use util::task::spawn_named_with_send_on_failure; use util::task_state; use util::workqueue::WorkQueue; @@ -1097,7 +1096,7 @@ impl LayoutRPC for LayoutRPCImpl { /// Requests the node containing the point of interest. fn hit_test(&self, _: TrustedNodeAddress, point: Point2D<f32>) -> Result<HitTestResponse, ()> { - let point = Point2D(Au::from_frac_px(point.x as f64), Au::from_frac_px(point.y as f64)); + let point = Point2D(Au::from_frac32_px(point.x), Au::from_frac32_px(point.y)); let resp = { let &LayoutRPCImpl(ref rw_data) = self; let rw_data = rw_data.lock().unwrap(); @@ -1124,7 +1123,7 @@ impl LayoutRPC for LayoutRPCImpl { fn mouse_over(&self, _: TrustedNodeAddress, point: Point2D<f32>) -> Result<MouseOverResponse, ()> { let mut mouse_over_list: Vec<DisplayItemMetadata> = vec!(); - let point = Point2D(Au::from_frac_px(point.x as f64), Au::from_frac_px(point.y as f64)); + let point = Point2D(Au::from_frac32_px(point.x), Au::from_frac32_px(point.y)); { let &LayoutRPCImpl(ref rw_data) = self; let rw_data = rw_data.lock().unwrap(); diff --git a/components/layout/lib.rs b/components/layout/lib.rs index 876d8f7c425..b394c5db88a 100644 --- a/components/layout/lib.rs +++ b/components/layout/lib.rs @@ -6,13 +6,12 @@ #![feature(box_syntax)] #![feature(collections)] #![feature(core)] -#![feature(io)] +#![feature(filling_drop)] #![feature(plugin)] #![feature(rustc_private)] #![feature(std_misc)] +#![feature(str_char)] #![feature(thread_local)] -#![feature(unicode)] -#![feature(unsafe_destructor)] #![feature(unsafe_no_drop_flag)] #![deny(unsafe_code)] @@ -29,7 +28,7 @@ extern crate bitflags; #[macro_use] #[no_link] -extern crate "plugins" as servo_plugins; +extern crate plugins as servo_plugins; extern crate net_traits; #[macro_use] extern crate profile_traits; @@ -37,7 +36,7 @@ extern crate profile_traits; #[macro_use] extern crate util; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate alloc; extern crate azure; extern crate canvas; diff --git a/components/layout/model.rs b/components/layout/model.rs index 8aecee621ee..b4498ff3079 100644 --- a/components/layout/model.rs +++ b/components/layout/model.rs @@ -434,8 +434,8 @@ impl ToGfxMatrix for ComputedMatrix { self.m12 as f32, self.m21 as f32, self.m22 as f32, - self.m31.to_au(containing_size.width).to_subpx() as f32, - self.m32.to_au(containing_size.height).to_subpx() as f32) + self.m31.to_au(containing_size.width).to_frac32_px(), + self.m32.to_au(containing_size.height).to_frac32_px()) } } @@ -446,7 +446,7 @@ trait ToAu { impl ToAu for LengthAndPercentage { #[inline] fn to_au(&self, containing_size: Au) -> Au { - self.length + Au::from_frac_px(self.percentage * containing_size.to_subpx()) + self.length + Au::from_frac32_px(self.percentage * containing_size.to_frac32_px()) } } diff --git a/components/layout/sequential.rs b/components/layout/sequential.rs index 3c4755c8e0c..74522354e7d 100644 --- a/components/layout/sequential.rs +++ b/components/layout/sequential.rs @@ -82,7 +82,10 @@ pub fn traverse_flow_tree_preorder(root: &mut FlowRef, if opts::get().bubble_inline_sizes_separately { let bubble_inline_sizes = BubbleISizes { layout_context: &layout_context }; - root.traverse_postorder(&bubble_inline_sizes); + { + let root: &mut Flow = root; + root.traverse_postorder(&bubble_inline_sizes); + } } let assign_inline_sizes = AssignISizes { layout_context: &layout_context }; diff --git a/components/layout/table.rs b/components/layout/table.rs index d6ad3746054..76b0ad99a6b 100644 --- a/components/layout/table.rs +++ b/components/layout/table.rs @@ -430,8 +430,8 @@ impl Flow for TableFlow { // if there are any, or among all the columns if all are specified. self.column_computed_inline_sizes.clear(); if num_unspecified_inline_sizes == 0 { - let ratio = content_inline_size.to_subpx() / - total_column_inline_size.to_subpx(); + let ratio = content_inline_size.to_frac32_px() / + total_column_inline_size.to_frac32_px(); for column_inline_size in self.column_intrinsic_inline_sizes.iter() { self.column_computed_inline_sizes.push(ColumnComputedInlineSize { size: column_inline_size.minimum_length.scale_by(ratio), diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs index 720f80566cc..73e631e2e25 100644 --- a/components/layout/table_wrapper.rs +++ b/components/layout/table_wrapper.rs @@ -590,7 +590,7 @@ impl SelectedAutoLayoutCandidateGuess { /// Computes the weight needed to linearly interpolate `middle` between two guesses `low` and /// `high` as specified by INTRINSIC § 4.3. fn weight(low: Au, middle: Au, high: Au) -> CSSFloat { - (middle - low).to_subpx() / (high - low).to_subpx() + (middle - low).to_frac32_px() / (high - low).to_frac32_px() } /// Linearly interpolates between two guesses, as specified by INTRINSIC § 4.3. @@ -653,9 +653,9 @@ impl ExcessInlineSizeDistributionInfo { // do? if !column_intrinsic_inline_size.constrained && column_intrinsic_inline_size.percentage == 0.0 { - column_intrinsic_inline_size.preferred.to_subpx() / + column_intrinsic_inline_size.preferred.to_frac32_px() / self.preferred_inline_size_of_nonconstrained_columns_with_no_percentage - .to_subpx() + .to_frac32_px() } else { 0.0 } @@ -663,8 +663,8 @@ impl ExcessInlineSizeDistributionInfo { 1.0 / (self.count_of_nonconstrained_columns_with_no_percentage as CSSFloat) } else if self.preferred_inline_size_of_constrained_columns_with_no_percentage > Au(0) { - column_intrinsic_inline_size.preferred.to_subpx() / - self.preferred_inline_size_of_constrained_columns_with_no_percentage.to_subpx() + column_intrinsic_inline_size.preferred.to_frac32_px() / + self.preferred_inline_size_of_constrained_columns_with_no_percentage.to_frac32_px() } else if self.total_percentage > 0.0 { column_intrinsic_inline_size.percentage / self.total_percentage } else { @@ -684,7 +684,7 @@ impl ExcessInlineSizeDistributionInfo { /// An intermediate column size assignment. struct IntermediateColumnInlineSize { size: Au, - percentage: f64, + percentage: f32, } fn initial_computed_inline_size(block: &mut BlockFlow, diff --git a/components/layout/text.rs b/components/layout/text.rs index 4bfbcb66ca8..9930b389b62 100644 --- a/components/layout/text.rs +++ b/components/layout/text.rs @@ -27,7 +27,7 @@ use util::geometry::Au; use util::linked_list::split_off_head; use util::logical_geometry::{LogicalSize, WritingMode}; use util::range::{Range, RangeIndex}; -use util::smallvec::{SmallVec, SmallVec1}; +use util::smallvec::SmallVec1; /// A stack-allocated object for scanning an inline flow into `TextRun`-containing `TextFragment`s. pub struct TextRunScanner { @@ -185,7 +185,7 @@ impl TextRunScanner { }; // FIXME(https://github.com/rust-lang/rust/issues/23338) - let mut font = fontgroup.fonts.get(0).borrow_mut(); + let mut font = fontgroup.fonts[0].borrow_mut(); Arc::new(box TextRun::new(&mut *font, run_text, &options)) }; @@ -193,7 +193,7 @@ impl TextRunScanner { debug!("TextRunScanner: pushing {} fragment(s)", self.clump.len()); for (logical_offset, old_fragment) in mem::replace(&mut self.clump, LinkedList::new()).into_iter().enumerate() { - let mut range = *new_ranges.get(logical_offset); + let mut range = new_ranges[logical_offset]; if range.is_empty() { debug!("Elided an `SpecificFragmentInfo::UnscannedText` because it was \ zero-length after compression"); @@ -238,14 +238,14 @@ impl TextRunScanner { let length = string.len(); let original = mem::replace(string, String::with_capacity(length)); for character in original.chars() { - string.push(character.to_uppercase()) + string.extend(character.to_uppercase()) } } text_transform::T::lowercase => { let length = string.len(); let original = mem::replace(string, String::with_capacity(length)); for character in original.chars() { - string.push(character.to_lowercase()) + string.extend(character.to_lowercase()) } } text_transform::T::capitalize => { @@ -258,7 +258,7 @@ impl TextRunScanner { // // http://dev.w3.org/csswg/css-text/#typographic-letter-unit if capitalize_next_letter && character.is_alphabetic() { - string.push(character.to_uppercase()); + string.extend(character.to_uppercase()); capitalize_next_letter = false; continue } @@ -308,7 +308,7 @@ pub fn font_metrics_for_style(font_context: &mut FontContext, font_style: Arc<Fo -> FontMetrics { let fontgroup = font_context.get_layout_font_group_for_style(font_style); // FIXME(https://github.com/rust-lang/rust/issues/23338) - let font = fontgroup.fonts.get(0).borrow(); + let font = fontgroup.fonts[0].borrow(); font.metrics.clone() } diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index 49c6a688a7c..b647284c2ed 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -71,11 +71,11 @@ use style::computed_values::content::ContentItem; use style::computed_values::{content, display, white_space}; use selectors::matching::DeclarationBlock; use selectors::parser::{NamespaceConstraint, AttrSelector}; -use selectors::smallvec::VecLike; use style::legacy::{IntegerAttribute, LengthAttribute}; use style::legacy::{UnsignedIntegerAttribute}; use style::node::{TElement, TElementAttributes, TNode}; use style::properties::{PropertyDeclaration, PropertyDeclarationBlock}; +use util::smallvec::VecLike; use url::Url; /// Allows some convenience methods on generic layout nodes. diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml index 0548c6f00a9..cb4c6038b43 100644 --- a/components/net/Cargo.toml +++ b/components/net/Cargo.toml @@ -22,7 +22,7 @@ git = "https://github.com/servo/rust-png" [dependencies] url = "0.2.16" time = "0.1.17" -openssl="0.5.1" +openssl="0.6.1" rustc-serialize = "0.3" cookie="*" regex = "0.1.14" diff --git a/components/net/about_loader.rs b/components/net/about_loader.rs index 11533c353f4..213988904c2 100644 --- a/components/net/about_loader.rs +++ b/components/net/about_loader.rs @@ -14,7 +14,6 @@ use hyper::http::RawStatus; use hyper::mime::{Mime, TopLevel, SubLevel}; use util::resource_files::resources_dir_path; -use std::borrow::IntoCow; use std::fs::PathExt; use std::sync::Arc; @@ -26,7 +25,7 @@ pub fn factory(mut load_data: LoadData, start_chan: LoadConsumer, classifier: Ar content_type: Some(ContentType(Mime(TopLevel::Text, SubLevel::Html, vec![]))), charset: Some("utf-8".to_string()), headers: None, - status: Some(RawStatus(200, "OK".into_cow())), + status: Some(RawStatus(200, "OK".into())), }); chan.send(Done(Ok(()))).unwrap(); return diff --git a/components/net/cookie.rs b/components/net/cookie.rs index 48b9fab41ed..e520e0cbcb6 100644 --- a/components/net/cookie.rs +++ b/components/net/cookie.rs @@ -9,12 +9,10 @@ use net_traits::CookieSource; use pub_domains::PUB_DOMAINS; use cookie_rs; -use time::{Tm, now, at, Timespec}; +use time::{Tm, now, at, Duration}; use url::Url; use std::borrow::ToOwned; -use std::i64; use std::net::{Ipv4Addr, Ipv6Addr}; -use std::time::Duration; use std::str::FromStr; /// A stored cookie that wraps the definition in cookie-rs. This is used to implement @@ -27,7 +25,7 @@ pub struct Cookie { pub persistent: bool, pub creation_time: Tm, pub last_access: Tm, - pub expiry_time: Tm, + pub expiry_time: Option<Tm>, } impl Cookie { @@ -36,9 +34,11 @@ impl Cookie { -> Option<Cookie> { // Step 3 let (persistent, expiry_time) = match (&cookie.max_age, &cookie.expires) { - (&Some(max_age), _) => (true, at(now().to_timespec() + Duration::seconds(max_age as i64))), - (_, &Some(expires)) => (true, expires), - _ => (false, at(Timespec::new(i64::MAX, 0))) + (&Some(max_age), _) => { + (true, Some(at(now().to_timespec() + Duration::seconds(max_age as i64)))) + } + (_, &Some(expires)) => (true, Some(expires)), + _ => (false, None) }; let url_host = request.host().map(|host| host.serialize()).unwrap_or("".to_owned()); @@ -68,7 +68,7 @@ impl Cookie { // Step 7 let mut path = cookie.path.unwrap_or("".to_owned()); - if path.is_empty() || path.char_at(0) != '/' { + if path.is_empty() || path.as_bytes()[0] != b'/' { let url_path = request.serialize_path(); let url_path = url_path.as_ref().map(|path| &**path); path = Cookie::default_path(url_path.unwrap_or("")).to_owned(); @@ -117,7 +117,7 @@ impl Cookie { pub fn path_match(request_path: &str, cookie_path: &str) -> bool { request_path == cookie_path || ( request_path.starts_with(cookie_path) && - ( request_path.ends_with("/") || request_path.char_at(cookie_path.len() - 1) == '/' ) + ( request_path.ends_with("/") || request_path.as_bytes()[cookie_path.len() - 1] == b'/' ) ) } @@ -127,7 +127,7 @@ impl Cookie { return true; } if string.ends_with(domain_string) - && string.char_at(string.len()-domain_string.len()-1) == '.' + && string.as_bytes()[string.len()-domain_string.len()-1] == b'.' && Ipv4Addr::from_str(string).is_err() && Ipv6Addr::from_str(string).is_err() { return true; diff --git a/components/net/data_loader.rs b/components/net/data_loader.rs index 5b86af53851..36daf044e61 100644 --- a/components/net/data_loader.rs +++ b/components/net/data_loader.rs @@ -11,7 +11,8 @@ use rustc_serialize::base64::FromBase64; use hyper::mime::Mime; use std::sync::Arc; -use url::{percent_decode, SchemeData}; +use url::percent_encoding::percent_decode; +use url::SchemeData; pub fn factory(load_data: LoadData, senders: LoadConsumer, _classifier: Arc<MIMEClassifier>) { // NB: we don't spawn a new task. @@ -39,7 +40,7 @@ pub fn load(load_data: LoadData, start_chan: LoadConsumer) { }, None => () } - let parts: Vec<&str> = scheme_data.splitn(1, ',').collect(); + let parts: Vec<&str> = scheme_data.splitn(2, ',').collect(); if parts.len() != 2 { start_sending(start_chan, metadata).send(Done(Err("invalid data uri".to_string()))).unwrap(); return; diff --git a/components/net/fetch/cors_cache.rs b/components/net/fetch/cors_cache.rs index 407e4813653..565271a340a 100644 --- a/components/net/fetch/cors_cache.rs +++ b/components/net/fetch/cors_cache.rs @@ -101,7 +101,6 @@ pub trait CORSCache { /// A simple, vector-based CORS Cache #[derive(Clone)] -#[unstable = "This might later be replaced with a HashMap-like entity, though that requires a separate Origin struct"] pub struct BasicCORSCache(Vec<CORSCacheEntry>); impl BasicCORSCache { diff --git a/components/net/fetch/response.rs b/components/net/fetch/response.rs index 468d86abf39..fc33c123010 100644 --- a/components/net/fetch/response.rs +++ b/components/net/fetch/response.rs @@ -28,7 +28,6 @@ pub enum TerminationReason { /// The response body can still be pushed to after fetch /// This provides a way to store unfinished response bodies -#[unstable = "I haven't yet decided exactly how the interface for this will be"] #[derive(Clone)] pub enum ResponseBody { Empty, // XXXManishearth is this necessary, or is Done(vec![]) enough? @@ -36,14 +35,12 @@ pub enum ResponseBody { Done(Vec<u8>), } -#[unstable = "I haven't yet decided exactly how the interface for this will be"] pub enum ResponseMsg { Chunk(Vec<u8>), Finished, Errored } -#[unstable = "I haven't yet decided exactly how the interface for this will be"] pub struct ResponseLoader { response: Response, chan: Receiver<ResponseMsg> diff --git a/components/net/file_loader.rs b/components/net/file_loader.rs index 9240a736862..a81d0e8afdb 100644 --- a/components/net/file_loader.rs +++ b/components/net/file_loader.rs @@ -8,6 +8,7 @@ use mime_classifier::MIMEClassifier; use resource_task::{start_sending, start_sending_sniffed, ProgressSender}; use std::borrow::ToOwned; +use std::error::Error; use std::fs::File; use std::io::Read; use std::path::PathBuf; diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index bc2a74cafca..dec8727daad 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -19,21 +19,21 @@ use hyper::mime::{Mime, TopLevel, SubLevel}; use hyper::net::HttpConnector; use hyper::status::{StatusCode, StatusClass}; use std::error::Error; -use openssl::ssl::{SslContext, SslVerifyMode}; +use openssl::ssl::{SslContext, SSL_VERIFY_PEER}; use std::io::{self, Read, Write}; use std::sync::Arc; use std::sync::mpsc::{Sender, channel}; -use std::thunk::Invoke; use util::task::spawn_named; use util::resource_files::resources_dir_path; use util::opts; use url::{Url, UrlParser}; use std::borrow::ToOwned; +use std::boxed::FnBox; pub fn factory(cookies_chan: Sender<ControlMsg>) - -> Box<Invoke<(LoadData, LoadConsumer, Arc<MIMEClassifier>)> + Send> { - box move |(load_data, senders, classifier)| { + -> Box<FnBox(LoadData, LoadConsumer, Arc<MIMEClassifier>) + Send> { + box move |load_data, senders, classifier| { spawn_named("http_loader".to_owned(), move || load(load_data, senders, classifier, cookies_chan)) } } @@ -114,20 +114,20 @@ fn load(mut load_data: LoadData, start_chan: LoadConsumer, classifier: Arc<MIMEC info!("requesting {}", url.serialize()); fn verifier(ssl: &mut SslContext) { - ssl.set_verify(SslVerifyMode::SslVerifyPeer, None); + ssl.set_verify(SSL_VERIFY_PEER, None); let mut certs = resources_dir_path(); certs.push("certs"); - ssl.set_CA_file(&certs); + ssl.set_CA_file(&certs).unwrap(); }; - let ssl_err_string = "[UnknownError { library: \"SSL routines\", \ + let ssl_err_string = "Some(OpenSslErrors([UnknownError { library: \"SSL routines\", \ function: \"SSL3_GET_SERVER_CERTIFICATE\", \ -reason: \"certificate verify failed\" }]"; +reason: \"certificate verify failed\" }]))"; let mut connector = if opts::get().nossl { HttpConnector(None) } else { - HttpConnector(Some(box verifier as Box<FnMut(&mut SslContext)>)) + HttpConnector(Some(box verifier as Box<FnMut(&mut SslContext) + Send>)) }; let mut req = match Request::with_connector(load_data.method.clone(), url.clone(), &mut connector) { @@ -135,7 +135,8 @@ reason: \"certificate verify failed\" }]"; Err(HttpError::HttpIoError(ref io_error)) if ( io_error.kind() == io::ErrorKind::Other && io_error.description() == "Error in OpenSSL" && - io_error.detail() == Some(ssl_err_string.to_owned()) + // FIXME: This incredibly hacky. Make it more robust, and at least test it. + format!("{:?}", io_error.cause()) == ssl_err_string ) => { let mut image = resources_dir_path(); image.push("badcert.html"); diff --git a/components/net/lib.rs b/components/net/lib.rs index 70f4a14db59..8ab60ead069 100644 --- a/components/net/lib.rs +++ b/components/net/lib.rs @@ -6,9 +6,6 @@ #![feature(box_syntax)] #![feature(collections)] #![feature(core)] -#![feature(io)] -#![cfg_attr(test, feature(net))] -#![feature(path)] #![feature(path_ext)] #![feature(plugin)] #![feature(rustc_private)] @@ -18,7 +15,7 @@ #![plugin(regex_macros)] extern crate net_traits; -extern crate "cookie" as cookie_rs; +extern crate cookie as cookie_rs; extern crate collections; extern crate flate2; extern crate geom; @@ -27,7 +24,7 @@ extern crate png; #[macro_use] extern crate log; extern crate openssl; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate util; extern crate time; extern crate url; diff --git a/components/net/resource_task.rs b/components/net/resource_task.rs index 15c48d111d9..cac46cbce8b 100644 --- a/components/net/resource_task.rs +++ b/components/net/resource_task.rs @@ -22,7 +22,7 @@ use hyper::header::{ContentType, Header, SetCookie, UserAgent}; use hyper::mime::{Mime, TopLevel, SubLevel}; use std::borrow::ToOwned; -use std::boxed; +use std::boxed::{self, FnBox}; use std::collections::HashMap; use std::env; use std::fs::File; @@ -30,7 +30,6 @@ use std::io::{BufReader, Read}; use std::str::FromStr; use std::sync::Arc; use std::sync::mpsc::{channel, Receiver, Sender}; -use std::thunk::Invoke; static mut HOST_TABLE: Option<*mut HashMap<String, String>> = None; @@ -48,7 +47,7 @@ pub fn global_init() { let mut lines = String::new(); match file.read_to_string(&mut lines) { - Ok(()) => (), + Ok(_) => (), Err(_) => return, }; @@ -239,8 +238,8 @@ impl ResourceManager { self.user_agent.as_ref().map(|ua| load_data.headers.set(UserAgent(ua.clone()))); fn from_factory(factory: fn(LoadData, LoadConsumer, Arc<MIMEClassifier>)) - -> Box<Invoke<(LoadData, LoadConsumer, Arc<MIMEClassifier>)> + Send> { - box move |(load_data, senders, classifier)| { + -> Box<FnBox(LoadData, LoadConsumer, Arc<MIMEClassifier>) + Send> { + box move |load_data, senders, classifier| { factory(load_data, senders, classifier) } } @@ -259,6 +258,6 @@ impl ResourceManager { }; debug!("resource_task: loading url: {}", load_data.url.serialize()); - loader.invoke((load_data, consumer, self.mime_classifier.clone())); + loader.call_box((load_data, consumer, self.mime_classifier.clone())); } } diff --git a/components/net_traits/image/base.rs b/components/net_traits/image/base.rs index 4a14fdd6255..8af32f826d0 100644 --- a/components/net_traits/image/base.rs +++ b/components/net_traits/image/base.rs @@ -4,7 +4,6 @@ use png; use stb_image::image as stb_image2; -use std::iter::range_step; use util::vec::byte_swap; // FIXME: Images must not be copied every frame. Instead we should atomically @@ -14,7 +13,7 @@ pub type Image = png::Image; // TODO(pcwalton): Speed up with SIMD, or better yet, find some way to not do this. fn byte_swap_and_premultiply(data: &mut [u8]) { let length = data.len(); - for i in range_step(0, length, 4) { + for i in (0..length).step_by(4) { let r = data[i + 2]; let g = data[i + 1]; let b = data[i + 0]; diff --git a/components/net_traits/lib.rs b/components/net_traits/lib.rs index 879643af266..ba9daea4cf4 100644 --- a/components/net_traits/lib.rs +++ b/components/net_traits/lib.rs @@ -4,8 +4,9 @@ #![feature(box_syntax)] #![feature(collections)] -#![feature(core)] #![feature(rustc_private)] +#![feature(slice_patterns)] +#![feature(step_by)] extern crate geom; extern crate hyper; @@ -22,7 +23,6 @@ use hyper::method::Method; use hyper::mime::{Mime, Attr}; use url::Url; -use std::borrow::IntoCow; use std::sync::mpsc::{channel, Receiver, Sender}; pub mod image_cache_task; @@ -169,7 +169,7 @@ impl Metadata { charset: None, headers: None, // https://fetch.spec.whatwg.org/#concept-response-status-message - status: Some(RawStatus(200, "OK".into_cow())), + status: Some(RawStatus(200, "OK".into())), } } diff --git a/components/plugins/casing.rs b/components/plugins/casing.rs index 98cefc658b2..f679441dbbd 100644 --- a/components/plugins/casing.rs +++ b/components/plugins/casing.rs @@ -11,17 +11,17 @@ use syntax::parse::token; pub fn expand_lower<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box<base::MacResult + 'cx> { - expand_cased(cx, sp, tts, |c| { c.to_lowercase() }) + expand_cased(cx, sp, tts, |s| { s.to_lowercase() }) } pub fn expand_upper<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box<base::MacResult + 'cx> { - expand_cased(cx, sp, tts, |c| { c.to_uppercase() }) + expand_cased(cx, sp, tts, |s| { s.to_uppercase() }) } fn expand_cased<'cx, T>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree], transform: T) -> Box<base::MacResult + 'cx> - where T: Fn(char) -> char + where T: Fn(&str) -> String { let es = match base::get_exprs_from_tts(cx, sp, tts) { Some(e) => e, @@ -47,8 +47,7 @@ fn expand_cased<'cx, T>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree], }; match (res, it.count()) { (Some((s, span)), 0) => { - let new_s = s.chars().map(transform).collect::<String>(); - base::MacEager::expr(cx.expr_str(span, token::intern_and_get_ident(&new_s))) + base::MacEager::expr(cx.expr_str(span, token::intern_and_get_ident(&transform(&s)))) } (_, rest) => { if rest > 0 { diff --git a/components/plugins/jstraceable.rs b/components/plugins/jstraceable.rs index 9384ed2038c..0ef1cecea3d 100644 --- a/components/plugins/jstraceable.rs +++ b/components/plugins/jstraceable.rs @@ -47,15 +47,16 @@ pub fn expand_jstraceable(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item: ], associated_types: vec![], }; - trait_def.expand(cx, mitem, item, |a| push(a)) + trait_def.expand(cx, mitem, item, push) } // Mostly copied from syntax::ext::deriving::hash /// Defines how the implementation for `trace()` is to be generated fn jstraceable_substructure(cx: &mut ExtCtxt, trait_span: Span, substr: &Substructure) -> P<Expr> { - let state_expr = match substr.nonself_args { - [ref state_expr] => state_expr, - _ => cx.span_bug(trait_span, "incorrect number of arguments in `jstraceable`") + let state_expr = if substr.nonself_args.len() == 1 { + &substr.nonself_args[0] + } else { + cx.span_bug(trait_span, "incorrect number of arguments in `jstraceable`") }; let trace_ident = substr.method_ident; let call_trace = |span, thing_expr| { diff --git a/components/plugins/lib.rs b/components/plugins/lib.rs index 36045cec078..a8bf2ad8b20 100644 --- a/components/plugins/lib.rs +++ b/components/plugins/lib.rs @@ -12,7 +12,7 @@ //! - `#[dom_struct]` : Implies `#[privatize]`,`#[jstraceable]`, and `#[must_root]`. //! Use this for structs that correspond to a DOM type -#![feature(plugin_registrar, quote, plugin, box_syntax, rustc_private, unicode)] +#![feature(plugin_registrar, quote, plugin, box_syntax, rustc_private, collections)] #[macro_use] extern crate syntax; diff --git a/components/plugins/lints/unrooted_must_root.rs b/components/plugins/lints/unrooted_must_root.rs index 3150c7da5e6..7a39f6cc4d5 100644 --- a/components/plugins/lints/unrooted_must_root.rs +++ b/components/plugins/lints/unrooted_must_root.rs @@ -33,7 +33,7 @@ fn lint_unrooted_ty(cx: &Context, ty: &ast::Ty, warning: &str) { ast::TyVec(ref t) | ast::TyFixedLengthVec(ref t, _) | ast::TyPtr(ast::MutTy { ty: ref t, ..}) | ast::TyRptr(_, ast::MutTy { ty: ref t, ..}) => lint_unrooted_ty(cx, &**t, warning), ast::TyPath(..) => { - match cx.tcx.def_map.borrow()[ty.id] { + match cx.tcx.def_map.borrow()[&ty.id] { def::PathResolution{ base_def: def::DefTy(def_id, _), .. } => { if ty::has_attr(cx.tcx, def_id, "must_root") { cx.span_lint(UNROOTED_MUST_ROOT, ty.span, warning); @@ -78,11 +78,11 @@ impl LintPass for UnrootedPass { fn check_fn(&mut self, cx: &Context, kind: visit::FnKind, decl: &ast::FnDecl, block: &ast::Block, _span: codemap::Span, id: ast::NodeId) { match kind { - visit::FkItemFn(i, _, _, _) | + visit::FkItemFn(i, _, _, _, _) | visit::FkMethod(i, _, _) if i.as_str() == "new" || i.as_str() == "new_inherited" => { return; }, - visit::FkItemFn(_, _, style, _) => match style { + visit::FkItemFn(_, _, style, _, _) => match style { ast::Unsafety::Unsafe => return, _ => () }, diff --git a/components/plugins/utils.rs b/components/plugins/utils.rs index 603aa3569a0..3da728481e9 100644 --- a/components/plugins/utils.rs +++ b/components/plugins/utils.rs @@ -69,15 +69,9 @@ pub fn match_lang_ty(cx: &Context, ty: &Ty, value: &str) -> bool { pub fn unsafe_context(map: &ast_map::Map, id: ast::NodeId) -> bool { match map.find(map.get_parent(id)) { Some(ast_map::NodeImplItem(itm)) => { - match *itm { - ast::MethodImplItem(ref meth) => match meth.node { - ast::MethDecl(_, _, _, _, style, _, _, _) => match style { - ast::Unsafety::Unsafe => true, - _ => false, - }, - _ => false, - }, - _ => false, + match itm.node { + ast::MethodImplItem(ref sig, _) => sig.unsafety == ast::Unsafety::Unsafe, + _ => false } }, Some(ast_map::NodeItem(itm)) => { diff --git a/components/profile/lib.rs b/components/profile/lib.rs index 3d6e91e5dcc..ab60d36f86e 100644 --- a/components/profile/lib.rs +++ b/components/profile/lib.rs @@ -5,12 +5,8 @@ #![feature(box_syntax)] #![feature(collections)] #![feature(core)] -#![cfg_attr(target_os="linux", feature(io))] -#![feature(old_io)] #![cfg_attr(target_os="linux", feature(page_size))] #![feature(rustc_private)] -#![feature(std_misc)] -#![cfg_attr(target_os="linux", feature(str_words))] #[macro_use] extern crate log; @@ -22,7 +18,7 @@ extern crate profile_traits; extern crate regex; #[cfg(target_os="macos")] extern crate task_info; -extern crate "time" as std_time; +extern crate time as std_time; extern crate util; pub mod mem; diff --git a/components/profile/mem.rs b/components/profile/mem.rs index bc8b84ac1bb..26aff02bb05 100644 --- a/components/profile/mem.rs +++ b/components/profile/mem.rs @@ -9,9 +9,8 @@ use self::system_reporter::SystemReporter; use std::borrow::ToOwned; use std::cmp::Ordering; use std::collections::HashMap; -use std::old_io::timer::sleep; +use std::thread::sleep_ms; use std::sync::mpsc::{channel, Receiver}; -use std::time::duration::Duration; use util::task::spawn_named; pub struct Profiler { @@ -28,11 +27,11 @@ impl Profiler { // Create the timer thread if a period was provided. if let Some(period) = period { - let period_ms = Duration::milliseconds((period * 1000f64) as i64); + let period_ms = (period * 1000.) as u32; let chan = chan.clone(); spawn_named("Memory profiler timer".to_owned(), move || { loop { - sleep(period_ms); + sleep_ms(period_ms); if chan.send(ProfilerMsg::Print).is_err() { break; } @@ -444,7 +443,7 @@ mod system_reporter { let mut f = option_try!(File::open("/proc/self/statm").ok()); let mut contents = String::new(); option_try!(f.read_to_string(&mut contents).ok()); - let s = option_try!(contents.words().nth(field)); + let s = option_try!(contents.split_whitespace().nth(field)); let npages = option_try!(s.parse::<usize>().ok()); Some(npages * ::std::env::page_size()) } @@ -485,7 +484,7 @@ mod system_reporter { use std::collections::HashMap; use std::collections::hash_map::Entry; use std::fs::File; - use std::io::{BufReader, BufReadExt}; + use std::io::{BufReader, BufRead}; // The first line of an entry in /proc/<pid>/smaps looks just like an entry // in /proc/<pid>/maps: diff --git a/components/profile/time.rs b/components/profile/time.rs index 284853a5480..464796006fa 100644 --- a/components/profile/time.rs +++ b/components/profile/time.rs @@ -9,11 +9,8 @@ use profile_traits::time::{ProfilerCategory, ProfilerChan, ProfilerMsg, TimerMet use std::borrow::ToOwned; use std::cmp::Ordering; use std::f64; -use std::old_io::timer::sleep; -use std::iter::AdditiveIterator; -use std::num::Float; use std::sync::mpsc::{channel, Receiver}; -use std::time::duration::Duration; +use std::thread::sleep_ms; use std_time::precise_time_ns; use util::task::spawn_named; @@ -99,11 +96,11 @@ impl Profiler { let (chan, port) = channel(); match period { Some(period) => { - let period = Duration::milliseconds((period * 1000f64) as i64); + let period = (period * 1000.) as u32; let chan = chan.clone(); spawn_named("Time profiler timer".to_owned(), move || { loop { - sleep(period); + sleep_ms(period); if chan.send(ProfilerMsg::Print).is_err() { break; } @@ -192,7 +189,7 @@ impl Profiler { let data_len = data.len(); if data_len > 0 { let (mean, median, min, max) = - (data.iter().map(|&x|x).sum() / (data_len as f64), + (data.iter().map(|&x|x).sum::<f64>() / (data_len as f64), data[data_len / 2], data.iter().fold(f64::INFINITY, |a, &b| a.min(b)), data.iter().fold(-f64::INFINITY, |a, &b| a.max(b))); diff --git a/components/profile_traits/time.rs b/components/profile_traits/time.rs index 5cd794072f9..f49940a168f 100644 --- a/components/profile_traits/time.rs +++ b/components/profile_traits/time.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -extern crate "time" as std_time; +extern crate time as std_time; extern crate url; use self::std_time::precise_time_ns; diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index 634c3e46d09..16642b80e8a 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -45,9 +45,6 @@ path = "../canvas" [dependencies.webdriver_traits] path = "../webdriver_traits" -[dependencies.cssparser] -git = "https://github.com/servo/rust-cssparser" - [dependencies.selectors] git = "https://github.com/servo/rust-selectors" @@ -80,3 +77,6 @@ bitflags = "*" rustc-serialize = "*" libc = "*" hyper = "0.3" +cssparser = "0.3.1" +unicase = "0.1" +num = "0.1.24" diff --git a/components/script/cors.rs b/components/script/cors.rs index a4044a52568..cd7d0828564 100644 --- a/components/script/cors.rs +++ b/components/script/cors.rs @@ -30,6 +30,7 @@ use hyper::header::{ContentType, Host}; use hyper::method::Method; use hyper::status::StatusClass::Success; +use unicase::UniCase; use url::{SchemeData, Url}; use util::task::spawn_named; @@ -185,10 +186,10 @@ impl CORSRequest { // Step 5 - 7 let mut header_names = vec!(); for header in self.headers.iter() { - header_names.push(header.name().to_ascii_lowercase()); + header_names.push(header.name().to_owned()); } header_names.sort(); - preflight.headers.set(AccessControlRequestHeaders(header_names)); + preflight.headers.set(AccessControlRequestHeaders(header_names.into_iter().map(UniCase).collect())); // Step 8 unnecessary, we don't use the request body // Step 9, 10 unnecessary, we're writing our own fetch code @@ -446,8 +447,8 @@ fn is_simple_method(m: &Method) -> bool { pub fn allow_cross_origin_request(req: &CORSRequest, headers: &Headers) -> bool { //FIXME(seanmonstar): use req.headers.get::<AccessControlAllowOrigin>() match headers.get() { - Some(&AccessControlAllowOrigin::AllowStar) => true, // Not always true, depends on credentials mode - Some(&AccessControlAllowOrigin::AllowOrigin(ref url)) => + Some(&AccessControlAllowOrigin::Any) => true, // Not always true, depends on credentials mode + Some(&AccessControlAllowOrigin::Value(ref url)) => url.scheme == req.origin.scheme && url.host() == req.origin.host() && url.port() == req.origin.port(), diff --git a/components/script/dom/activation.rs b/components/script/dom/activation.rs index 047d3a5c4df..dbbe4689e1b 100644 --- a/components/script/dom/activation.rs +++ b/components/script/dom/activation.rs @@ -14,7 +14,7 @@ use dom::node::window_from_node; use std::borrow::ToOwned; /// Trait for elements with defined activation behavior -pub trait Activatable : Copy { +pub trait Activatable { fn as_element(&self) -> Temporary<Element>; // Is this particular instance of the element activatable? diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 5055921bb3a..089193cca43 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -56,15 +56,14 @@ use js::jsval::{UndefinedValue, NullValue, BooleanValue, Int32Value, UInt32Value use js::jsval::{StringValue, ObjectValue, ObjectOrNullValue}; use libc; +use num::Float; use std::borrow::ToOwned; use std::default; -use std::marker::MarkerTrait; -use std::num::Float; use std::slice; /// A trait to retrieve the constants necessary to check if a `JSObject` /// implements a given interface. -pub trait IDLInterface: MarkerTrait { +pub trait IDLInterface { /// Returns the prototype ID. fn get_prototype_id() -> PrototypeList::ID; /// Returns the prototype depth, i.e., the number of interfaces this diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index 70dd88c1842..fc22078360f 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -641,7 +641,6 @@ impl<T: Reflectable> Root<T> { } } -#[unsafe_destructor] impl<T: Reflectable> Drop for Root<T> { fn drop(&mut self) { self.root_list.unroot(self); diff --git a/components/script/dom/bindings/num.rs b/components/script/dom/bindings/num.rs index 353a395784b..d0ceaae89f8 100644 --- a/components/script/dom/bindings/num.rs +++ b/components/script/dom/bindings/num.rs @@ -5,7 +5,7 @@ //! The `Finite<T>` struct. use core::nonzero::Zeroable; -use std::num::Float; +use num::Float; use std::ops::Deref; /// Encapsulates the IDL restricted float type. diff --git a/components/script/dom/bindings/refcounted.rs b/components/script/dom/bindings/refcounted.rs index 204ef93e023..046ae913b50 100644 --- a/components/script/dom/bindings/refcounted.rs +++ b/components/script/dom/bindings/refcounted.rs @@ -110,7 +110,6 @@ impl<T: Reflectable> Clone for Trusted<T> { } } -#[unsafe_destructor] impl<T: Reflectable> Drop for Trusted<T> { fn drop(&mut self) { let mut refcount = self.refcount.lock().unwrap(); diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 14d23920ab9..ab325ab804b 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -56,7 +56,7 @@ use script_traits::UntrustedNodeAddress; use msg::compositor_msg::ScriptListener; use msg::constellation_msg::ConstellationChan; use net_traits::image::base::Image; -use util::smallvec::{SmallVec1, SmallVec}; +use util::smallvec::SmallVec1; use util::str::{LengthOrPercentageOrAuto}; use std::cell::{Cell, RefCell}; use std::collections::{HashMap, HashSet}; @@ -64,7 +64,6 @@ use std::collections::hash_state::HashState; use std::ffi::CString; use std::hash::{Hash, Hasher}; use std::intrinsics::return_address; -use std::old_io::timer::Timer; use std::ops::{Deref, DerefMut}; use std::rc::Rc; use std::sync::Arc; @@ -252,7 +251,7 @@ no_jsmanaged_fields!(Receiver<T>); no_jsmanaged_fields!(Rect<T>); no_jsmanaged_fields!(Arc<T>); no_jsmanaged_fields!(Image, ImageCacheChan, ImageCacheTask, ScriptControlChan); -no_jsmanaged_fields!(Atom, Namespace, Timer); +no_jsmanaged_fields!(Atom, Namespace); no_jsmanaged_fields!(Trusted<T>); no_jsmanaged_fields!(PropertyDeclarationBlock); no_jsmanaged_fields!(HashSet<T>); @@ -444,7 +443,6 @@ impl<T: VecRootableType> RootedVec<T> { } } -#[unsafe_destructor] impl<T: VecRootableType> Drop for RootedVec<T> { fn drop(&mut self) { RootedCollectionSet::remove(self); diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index 2c96fa2c0dd..55933484165 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -639,7 +639,7 @@ pub fn validate_and_extract(namespace: Option<DOMString>, qualified_name: &str) let (prefix, local_name) = if qualified_name.contains(":") { // Step 5. - let mut parts = qualified_name.splitn(1, ':'); + let mut parts = qualified_name.splitn(2, ':'); let prefix = parts.next().unwrap(); debug_assert!(!prefix.is_empty()); let local_name = parts.next().unwrap(); diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 47d03d72082..b27a0c3e7e9 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -12,10 +12,10 @@ use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; use util::str::DOMString; +use num::ToPrimitive; use std::ascii::AsciiExt; use std::borrow::ToOwned; use std::cmp::{min, max}; -use std::num::ToPrimitive; #[jstraceable] pub enum BlobTypeId { diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index cd02eb18f0e..9390e4db0fb 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -36,9 +36,9 @@ use net_traits::image::base::Image; use net_traits::image_cache_task::ImageCacheChan; use png::PixelsByColorType; +use num::{Float, ToPrimitive}; use std::borrow::ToOwned; use std::cell::RefCell; -use std::num::{Float, ToPrimitive}; use std::sync::{Arc}; use std::sync::mpsc::{channel, Sender}; @@ -977,7 +977,6 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D> } } -#[unsafe_destructor] impl Drop for CanvasRenderingContext2D { fn drop(&mut self) { self.renderer.send(CanvasMsg::Common(CanvasCommonMsg::Close)).unwrap(); diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 97c25e56b9c..28ecf365848 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -84,7 +84,6 @@ impl<'a> AutoWorkerReset<'a> { } } -#[unsafe_destructor] impl<'a> Drop for AutoWorkerReset<'a> { fn drop(&mut self) { *self.workerscope.worker.borrow_mut() = self.old_worker.clone(); diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 32f6a23623c..f96dd134082 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -81,6 +81,7 @@ use string_cache::{Atom, QualName}; use url::Url; use js::jsapi::JSRuntime; +use num::ToPrimitive; use std::borrow::ToOwned; use std::collections::HashMap; use std::collections::hash_map::Entry::{Occupied, Vacant}; @@ -88,7 +89,6 @@ use std::ascii::AsciiExt; use std::cell::{Cell, Ref}; use std::default::Default; use std::sync::mpsc::channel; -use std::num::ToPrimitive; use time; #[derive(PartialEq)] diff --git a/components/script/dom/domrect.rs b/components/script/dom/domrect.rs index 08cacc09be2..45c325b3a2d 100644 --- a/components/script/dom/domrect.rs +++ b/components/script/dom/domrect.rs @@ -10,7 +10,6 @@ use dom::bindings::num::Finite; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::window::Window; use util::geometry::Au; -use std::num::Float; #[dom_struct] pub struct DOMRect { diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index deb2df56b84..bc3f76079eb 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -64,6 +64,7 @@ use style::properties::{PropertyDeclarationBlock, PropertyDeclaration, parse_sty use style::properties::DeclaredValue::SpecifiedValue; use style::values::specified::CSSColor; use util::namespace; +use util::smallvec::VecLike; use util::str::{DOMString, LengthOrPercentageOrAuto}; use cssparser::Color; @@ -74,16 +75,14 @@ use html5ever::serialize::TraversalScope::{IncludeNode, ChildrenOnly}; use html5ever::tree_builder::{NoQuirks, LimitedQuirks, Quirks}; use selectors::matching::{matches, DeclarationBlock}; use selectors::parser::parse_author_origin_selector_list_from_str; -use selectors::smallvec::VecLike; use string_cache::{Atom, Namespace, QualName}; use url::UrlParser; use std::ascii::AsciiExt; -use std::borrow::{IntoCow, ToOwned}; +use std::borrow::{Cow, ToOwned}; use std::cell::{Ref, RefMut}; use std::default::Default; use std::mem; -use std::old_io::Writer; use std::sync::Arc; #[dom_struct] @@ -257,7 +256,7 @@ impl RawLayoutElementHelpers for Element { }; if let Some(color) = bgcolor { - hints.vec_push(from_declaration( + hints.push(from_declaration( PropertyDeclaration::BackgroundColor(SpecifiedValue( CSSColor { parsed: Color::RGBA(color), authored: None })))); } @@ -1011,9 +1010,9 @@ impl<'a> ElementMethods for JSRef<'a, Element> { fn TagName(self) -> DOMString { let qualified_name = match self.prefix { Some(ref prefix) => { - (format!("{}:{}", &**prefix, &*self.local_name)).into_cow() + Cow::Owned(format!("{}:{}", &**prefix, &*self.local_name)) }, - None => self.local_name.into_cow() + None => Cow::Borrowed(&*self.local_name) }; if self.html_element_in_html_document() { qualified_name.to_ascii_uppercase() diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs index 98410ef02ef..068c0b591a5 100644 --- a/components/script/dom/formdata.rs +++ b/components/script/dom/formdata.rs @@ -87,7 +87,7 @@ impl<'a> FormDataMethods for JSRef<'a, FormData> { // FIXME(https://github.com/rust-lang/rust/issues/23338) let data = self.data.borrow(); if data.contains_key(&name) { - match data[name][0].clone() { + match data[&name][0].clone() { FormDatum::StringData(ref s) => Some(eString(s.clone())), FormDatum::FileData(ref f) => { Some(eFile(Unrooted::from_js(*f))) diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 7a13b77b986..4a46235756e 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -25,8 +25,8 @@ use dom::node::{Node, NodeHelpers, NodeTypeId, document_from_node, window_from_n use dom::virtualmethods::VirtualMethods; use dom::window::WindowHelpers; +use num::ToPrimitive; use std::default::Default; -use std::num::ToPrimitive; use string_cache::Atom; use util::str::DOMString; diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs index e4520f6760c..68d8c9cf3e8 100644 --- a/components/script/dom/htmlcollection.rs +++ b/components/script/dom/htmlcollection.rs @@ -167,10 +167,12 @@ impl HTMLCollection { fn traverse(root: JSRef<Node>) -> FilterMap<Skip<TreeIterator>, fn(Temporary<Node>) -> Option<Temporary<Element>>> { + fn to_temporary(node: Temporary<Node>) -> Option<Temporary<Element>> { + ElementCast::to_temporary(node) + } root.traverse_preorder() .skip(1) - .filter_map(ElementCast::to_temporary as - fn(Temporary<Node>) -> Option<Temporary<Element>>) + .filter_map(to_temporary as fn(Temporary<Node>) -> Option<Temporary<Element>>) } } diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index f42aceced3a..ce70535de74 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -176,7 +176,7 @@ fn to_snake_case(name: DOMString) -> DOMString { for ch in name.chars() { if ch.is_uppercase() { attr_name.push('\x2d'); - attr_name.push(ch.to_lowercase()); + attr_name.extend(ch.to_lowercase()); } else { attr_name.push(ch); } diff --git a/components/script/dom/imagedata.rs b/components/script/dom/imagedata.rs index 34bebafb082..99dfbc853a7 100644 --- a/components/script/dom/imagedata.rs +++ b/components/script/dom/imagedata.rs @@ -33,7 +33,7 @@ impl ImageData { if let Some(vec) = data { let js_object_data: *mut uint8_t = JS_GetUint8ClampedArrayData(js_object, cx); - ptr::copy_nonoverlapping(js_object_data, vec.as_ptr(), vec.len()) + ptr::copy_nonoverlapping(vec.as_ptr(), js_object_data, vec.len()) } ImageData { diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs index 08a268678f0..ab93eddbefa 100644 --- a/components/script/dom/keyboardevent.rs +++ b/components/script/dom/keyboardevent.rs @@ -450,7 +450,7 @@ fn key_location(key: constellation_msg::Key) -> u32 { fn key_charcode(key: constellation_msg::Key, mods: constellation_msg::KeyModifiers) -> Option<u32> { let key = key_value(key, mods); if key.len() == 1 { - Some(key.char_at(0) as u32) + Some(key.chars().next().unwrap() as u32) } else { None } diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 9143677d1e0..bf9473b9d83 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -179,7 +179,6 @@ impl NodeFlags { } } -#[unsafe_destructor] impl Drop for Node { #[allow(unsafe_code)] fn drop(&mut self) { @@ -987,8 +986,11 @@ impl<'a> NodeHelpers for JSRef<'a, Node> { } fn child_elements(self) -> ChildElementIterator { + fn to_temporary(node: Temporary<Node>) -> Option<Temporary<Element>> { + ElementCast::to_temporary(node) + } self.children() - .filter_map(ElementCast::to_temporary as fn(_) -> _) + .filter_map(to_temporary as fn(_) -> _) .peekable() } diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs index 545402dc4a2..09aeb01c5e4 100644 --- a/components/script/dom/textencoder.rs +++ b/components/script/dom/textencoder.rs @@ -84,7 +84,7 @@ impl<'a> TextEncoderMethods for JSRef<'a, TextEncoder> { let js_object: *mut JSObject = JS_NewUint8Array(cx, length); let js_object_data: *mut uint8_t = JS_GetUint8ArrayData(js_object, cx); - ptr::copy_nonoverlapping(js_object_data, encoded.as_ptr(), length as usize); + ptr::copy_nonoverlapping(encoded.as_ptr(), js_object_data, length as usize); return js_object; } } diff --git a/components/script/dom/userscripts.rs b/components/script/dom/userscripts.rs index 3f4a7e6f268..1910784b0c5 100644 --- a/components/script/dom/userscripts.rs +++ b/components/script/dom/userscripts.rs @@ -28,7 +28,7 @@ pub fn load_script(head: JSRef<HTMLHeadElement>) { p.push("user-agent-js"); p } else { - PathBuf::new(path_str) + PathBuf::from(path_str) }; let mut files = read_dir(&path).ok().expect("Bad path passed to --userscripts") diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index e470dca128f..82dfc614f52 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -61,7 +61,6 @@ impl WebGLRenderingContext { } } -#[unsafe_destructor] impl Drop for WebGLRenderingContext { fn drop(&mut self) { self.renderer.send(CanvasMsg::Common(CanvasCommonMsg::Close)).unwrap(); diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 70046185981..37d79625334 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -61,7 +61,6 @@ use std::collections::HashSet; use std::default::Default; use std::ffi::CString; use std::mem; -use std::num::Float; use std::rc::Rc; use std::sync::mpsc::{channel, Receiver, Sender}; use std::sync::mpsc::TryRecvError::{Empty, Disconnected}; diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index d9e0f57ad8d..4e038609fef 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -56,15 +56,16 @@ use std::ascii::AsciiExt; use std::borrow::ToOwned; use std::cell::{RefCell, Cell}; use std::default::Default; -use std::old_io::Timer; use std::str::FromStr; use std::sync::{Mutex, Arc}; -use std::time::duration::Duration; +use std::sync::mpsc::{channel, Sender, TryRecvError}; +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}; + pub type SendParam = StringOrURLSearchParams; #[derive(PartialEq, Copy, Clone)] @@ -140,7 +141,7 @@ pub struct XMLHttpRequest { send_flag: Cell<bool>, global: GlobalField, - timer: DOMRefCell<Timer>, + timeout_cancel: DOMRefCell<Option<Sender<()>>>, fetch_time: Cell<i64>, timeout_target: DOMRefCell<Option<Box<ScriptChan+Send>>>, generation_id: Cell<GenerationId>, @@ -174,7 +175,7 @@ impl XMLHttpRequest { upload_events: Cell::new(false), global: GlobalField::from_rooted(&global), - timer: DOMRefCell::new(Timer::new().unwrap()), + timeout_cancel: DOMRefCell::new(None), fetch_time: Cell::new(0), timeout_target: DOMRefCell::new(None), generation_id: Cell::new(GenerationId(0)), @@ -963,7 +964,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { let total = self.response_headers.borrow().get::<ContentLength>().map(|x| {**x as u64}); self.dispatch_progress_event(false, type_, len, total); } - fn set_timeout(self, timeout: u32) { + fn set_timeout(self, duration_ms: u32) { struct XHRTimeout { xhr: TrustedXHRAddress, gen_id: GenerationId, @@ -981,22 +982,23 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { // Sets up the object to timeout in a given number of milliseconds // This will cancel all previous timeouts - let oneshot = self.timer.borrow_mut() - .oneshot(Duration::milliseconds(timeout as i64)); let timeout_target = (*self.timeout_target.borrow().as_ref().unwrap()).clone(); let global = self.global.root(); let xhr = Trusted::new(global.r().get_cx(), self, global.r().script_chan()); let gen_id = self.generation_id.get(); + let (cancel_tx, cancel_rx) = channel(); + *self.timeout_cancel.borrow_mut() = Some(cancel_tx); spawn_named("XHR:Timer".to_owned(), move || { - match oneshot.recv() { - Ok(_) => { + sleep_ms(duration_ms); + match cancel_rx.try_recv() { + Err(TryRecvError::Empty) => { timeout_target.send(ScriptMsg::RunnableMsg(box XHRTimeout { xhr: xhr, gen_id: gen_id, })).unwrap(); }, - Err(_) => { - // This occurs if xhr.timeout (the sender) goes out of scope (i.e, xhr went out of scope) + Err(TryRecvError::Disconnected) | Ok(()) => { + // This occurs if xhr.timeout_cancel (the sender) goes out of scope (i.e, xhr went out of scope) // or if the oneshot timer was overwritten. The former case should not happen due to pinning. debug!("XHR timeout was overwritten or canceled") } @@ -1006,8 +1008,9 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { } fn cancel_timeout(self) { - // oneshot() closes the previous channel, canceling the timeout - self.timer.borrow_mut().oneshot(Duration::zero()); + if let Some(cancel_tx) = self.timeout_cancel.borrow_mut().take() { + let _ = cancel_tx.send(()); + } } fn text_response(self) -> DOMString { diff --git a/components/script/horribly_inefficient_timers.rs b/components/script/horribly_inefficient_timers.rs new file mode 100644 index 00000000000..6f3774d3dca --- /dev/null +++ b/components/script/horribly_inefficient_timers.rs @@ -0,0 +1,31 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +/// A quick hack to work around the removal of [`std::old_io::timer::Timer`]( +/// http://doc.rust-lang.org/1.0.0-beta/std/old_io/timer/struct.Timer.html ) + +use std::sync::mpsc::{channel, Receiver}; +use std::thread::{spawn, sleep_ms}; + +pub fn oneshot(duration_ms: u32) -> Receiver<()> { + let (tx, rx) = channel(); + spawn(move || { + sleep_ms(duration_ms); + let _ = tx.send(()); + }); + rx +} + +pub fn periodic(duration_ms: u32) -> Receiver<()> { + let (tx, rx) = channel(); + spawn(move || { + loop { + sleep_ms(duration_ms); + if tx.send(()).is_err() { + break + } + } + }); + rx +} diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs index 4aa66eb452d..34d21e7e788 100644 --- a/components/script/layout_interface.rs +++ b/components/script/layout_interface.rs @@ -16,7 +16,6 @@ use profile_traits::mem::{Reporter, ReportsChan}; use script_traits::{ScriptControlChan, OpaqueScriptLayoutChannel, UntrustedNodeAddress}; use std::any::Any; use std::sync::mpsc::{channel, Receiver, Sender}; -use std::boxed::BoxAny; use style::animation::PropertyAnimation; use style::media_queries::MediaQueryList; use style::stylesheets::Stylesheet; @@ -88,7 +87,7 @@ pub struct HitTestResponse(pub UntrustedNodeAddress); pub struct MouseOverResponse(pub Vec<UntrustedNodeAddress>); /// Why we're doing reflow. -#[derive(PartialEq, Copy, Debug)] +#[derive(PartialEq, Copy, Clone, Debug)] pub enum ReflowGoal { /// We're reflowing in order to send a display list to the screen. ForDisplay, @@ -185,15 +184,15 @@ pub struct Animation { /// A description of the property animation that is occurring. pub property_animation: PropertyAnimation, /// The start time of the animation, as returned by `time::precise_time_s()`. - pub start_time: f64, + pub start_time: f32, /// The end time of the animation, as returned by `time::precise_time_s()`. - pub end_time: f64, + pub end_time: f32, } impl Animation { /// Returns the duration of this animation in seconds. #[inline] - pub fn duration(&self) -> f64 { + pub fn duration(&self) -> f32 { self.end_time - self.start_time } } diff --git a/components/script/lib.rs b/components/script/lib.rs index 879216a2e27..94cf931436b 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -7,13 +7,9 @@ #![feature(collections)] #![feature(core)] #![feature(custom_attribute)] -#![feature(old_io)] -#![feature(path)] #![feature(plugin)] #![feature(rustc_private)] #![feature(std_misc)] -#![feature(unicode)] -#![feature(unsafe_destructor)] #![deny(unsafe_code)] #![allow(non_snake_case)] @@ -39,8 +35,9 @@ extern crate js; extern crate libc; extern crate msg; extern crate net_traits; +extern crate num; extern crate png; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate time; extern crate canvas; extern crate profile_traits; @@ -49,6 +46,7 @@ extern crate selectors; extern crate util; #[macro_use] extern crate style; +extern crate unicase; extern crate url; extern crate uuid; extern crate string_cache; @@ -68,4 +66,5 @@ pub mod script_task; mod timers; pub mod textinput; mod devtools; +mod horribly_inefficient_timers; mod webdriver_handlers; diff --git a/components/script/page.rs b/components/script/page.rs index 57c22e4e3e7..67da1a9fc61 100644 --- a/components/script/page.rs +++ b/components/script/page.rs @@ -9,7 +9,6 @@ use dom::node::NodeHelpers; use dom::window::Window; use msg::constellation_msg::PipelineId; -use util::smallvec::SmallVec; use std::cell::Cell; use std::rc::Rc; use url::Url; diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index d16177e3a07..8bb528c2efe 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -39,13 +39,13 @@ use util::str::DOMString; use util::task_state; use util::task_state::IN_HTML_PARSER; use std::borrow::Cow; -use std::old_io::{Writer, IoResult}; +use std::io::{self, Write}; use url::Url; use html5ever::Attribute; use html5ever::serialize::{Serializable, Serializer, AttrRef}; use html5ever::serialize::TraversalScope; use html5ever::serialize::TraversalScope::{IncludeNode, ChildrenOnly}; -use html5ever::tree_builder::{TreeSink, QuirksMode, NodeOrText, AppendNode, AppendText}; +use html5ever::tree_builder::{TreeSink, QuirksMode, NodeOrText, AppendNode, AppendText, NextParserState}; use string_cache::QualName; use hyper::header::ContentType; @@ -179,10 +179,11 @@ impl<'a> TreeSink for servohtmlparser::Sink { script.map(|script| script.mark_already_started()); } - fn complete_script(&mut self, node: JS<Node>) { + fn complete_script(&mut self, node: JS<Node>) -> NextParserState { let node: Root<Node> = node.root(); let script: Option<JSRef<HTMLScriptElement>> = HTMLScriptElementCast::to_ref(node.r()); script.map(|script| script.prepare()); + NextParserState::Continue } fn reparent_children(&mut self, node: JS<Node>, new_parent: JS<Node>) { @@ -198,8 +199,8 @@ impl<'a> TreeSink for servohtmlparser::Sink { } impl<'a> Serializable for JSRef<'a, Node> { - fn serialize<'wr, Wr: Writer>(&self, serializer: &mut Serializer<'wr, Wr>, - traversal_scope: TraversalScope) -> IoResult<()> { + fn serialize<'wr, Wr: Write>(&self, serializer: &mut Serializer<'wr, Wr>, + traversal_scope: TraversalScope) -> io::Result<()> { let node = *self; match (traversal_scope, node.type_id()) { (_, NodeTypeId::Element(..)) => { diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 24a91c65c34..5e776d4db0f 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -71,7 +71,6 @@ use net_traits::image_cache_task::{ImageCacheChan, ImageCacheTask, ImageCacheRes use net_traits::storage_task::StorageTask; use string_cache::Atom; use util::geometry::to_frac_px; -use util::smallvec::SmallVec; use util::str::DOMString; use util::task::{spawn_named, spawn_named_with_send_on_failure}; use util::task_state; @@ -86,11 +85,11 @@ use js::rust::{Runtime, RtUtils}; use url::Url; use libc; +use num::ToPrimitive; use std::any::Any; use std::borrow::ToOwned; use std::cell::{Cell, RefCell}; use std::collections::HashSet; -use std::num::ToPrimitive; use std::option::Option; use std::ptr; use std::rc::Rc; @@ -98,7 +97,7 @@ use std::result::Result; use std::sync::mpsc::{channel, Sender, Receiver, Select}; use time::Tm; -use hyper::header::ContentType; +use hyper::header::{ContentType, HttpDate}; use hyper::mime::{Mime, TopLevel, SubLevel}; thread_local!(pub static STACK_ROOTS: Cell<Option<RootCollectionPtr>> = Cell::new(None)); @@ -340,7 +339,6 @@ impl<'a> ScriptMemoryFailsafe<'a> { } } -#[unsafe_destructor] impl<'a> Drop for ScriptMemoryFailsafe<'a> { #[allow(unrooted_must_root)] fn drop(&mut self) { @@ -1088,7 +1086,6 @@ impl ScriptTask { self.neutered = true; } } - #[unsafe_destructor] impl<'a> Drop for AutoPageRemover<'a> { fn drop(&mut self) { if !self.neutered { @@ -1127,7 +1124,7 @@ impl ScriptTask { incomplete.window_size).root(); let last_modified: Option<DOMString> = response.metadata.headers.as_ref().and_then(|headers| { - headers.get().map(|&LastModified(ref tm)| dom_last_modified(tm)) + headers.get().map(|&LastModified(HttpDate(ref tm))| dom_last_modified(tm)) }); let content_type = match response.metadata.content_type { @@ -1458,7 +1455,6 @@ impl<'a> AutoDOMEventMarker<'a> { } } -#[unsafe_destructor] impl<'a> Drop for AutoDOMEventMarker<'a> { fn drop(&mut self) { let marker = TimelineMarker::new("DOMEvent".to_owned(), TracingMetadata::IntervalEnd); diff --git a/components/script/textinput.rs b/components/script/textinput.rs index 24383bf3fb4..f99f5e8781c 100644 --- a/components/script/textinput.rs +++ b/components/script/textinput.rs @@ -14,7 +14,6 @@ use util::str::DOMString; use std::borrow::ToOwned; use std::cmp::{min, max}; use std::default::Default; -use std::num::SignedInt; use std::sync::mpsc::channel; #[derive(Copy, Clone, PartialEq)] @@ -310,7 +309,7 @@ impl TextInput { }, // printable characters have single-character key values c if c.len() == 1 => { - self.insert_char(c.char_at(0)); + self.insert_char(c.chars().next().unwrap()); KeyReaction::DispatchInput } "Space" => { diff --git a/components/script/timers.rs b/components/script/timers.rs index 01e9920b3b7..806bc57b85a 100644 --- a/components/script/timers.rs +++ b/components/script/timers.rs @@ -11,6 +11,7 @@ use dom::bindings::utils::Reflectable; use dom::window::ScriptHelpers; use script_task::{ScriptChan, ScriptMsg, TimerSource}; +use horribly_inefficient_timers; use util::task::spawn_named; use util::str::DOMString; @@ -24,8 +25,6 @@ use std::collections::HashMap; use std::sync::mpsc::{channel, Sender}; use std::sync::mpsc::Select; use std::hash::{Hash, Hasher}; -use std::old_io::timer::Timer; -use std::time::duration::Duration; #[derive(PartialEq, Eq)] #[jstraceable] @@ -74,7 +73,6 @@ pub struct TimerManager { } -#[unsafe_destructor] impl Drop for TimerManager { fn drop(&mut self) { for (_, timer_handle) in self.active_timers.borrow_mut().iter_mut() { @@ -141,13 +139,12 @@ impl TimerManager { source: TimerSource, script_chan: Box<ScriptChan+Send>) -> i32 { - let timeout = cmp::max(0, timeout) as u64; + let duration_ms = cmp::max(0, timeout) as u32; let handle = self.next_timer_handle.get(); self.next_timer_handle.set(handle + 1); // Spawn a new timer task; it will dispatch the `ScriptMsg::FireTimer` // to the relevant script handler that will deal with it. - let tm = Timer::new().unwrap(); let (control_chan, control_port) = channel(); let spawn_name = match source { TimerSource::FromWindow(_) if is_interval == IsInterval::Interval => "Window:SetInterval", @@ -156,12 +153,10 @@ impl TimerManager { TimerSource::FromWorker => "Worker:SetTimeout", }.to_owned(); spawn_named(spawn_name, move || { - let mut tm = tm; - let duration = Duration::milliseconds(timeout as i64); let timeout_port = if is_interval == IsInterval::Interval { - tm.periodic(duration) + horribly_inefficient_timers::periodic(duration_ms) } else { - tm.oneshot(duration) + horribly_inefficient_timers::oneshot(duration_ms) }; let control_port = control_port; diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 3adac4b1aa8..4748de71fca 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -2,7 +2,7 @@ name = "servo" version = "0.0.1" dependencies = [ - "android_glue 0.0.1", + "android_glue 0.0.2", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "compositing 0.0.1", "devtools 0.0.1", @@ -21,8 +21,8 @@ dependencies = [ "script 0.0.1", "script_tests 0.0.1", "style_tests 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "util_tests 0.0.1", "webdriver_server 0.0.1", @@ -30,17 +30,17 @@ dependencies = [ [[package]] name = "android_glue" -version = "0.0.1" +version = "0.0.2" [[package]] name = "android_glue" -version = "0.0.1" -source = "git+https://github.com/tomaka/android-rs-glue#fa1eaa1d1857e0fa93832c5c8db5dc8bbcbc1eba" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "azure" version = "0.1.0" -source = "git+https://github.com/servo/rust-azure#3e5daf667a62f702dc16285e923464458bef785f" +source = "git+https://github.com/servo/rust-azure#91e18a325fa5fdee9b1634b44a3a3a7ac1fb09ff" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", @@ -48,8 +48,8 @@ dependencies = [ "egl 0.1.0 (git+https://github.com/servo/rust-egl)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] @@ -63,44 +63,40 @@ name = "canvas" version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "gleam 0.0.1 (git+https://github.com/servo/gleam)", - "glutin 0.0.7 (git+https://github.com/servo/glutin?branch=servo)", - "offscreen_gl_context 0.0.1 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)", + "glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "offscreen_gl_context 0.0.1 (git+https://github.com/servo/rust-offscreen-rendering-context)", "util 0.0.1", ] [[package]] name = "cgl" version = "0.0.1" -source = "git+https://github.com/servo/rust-cgl#211afc4d1572d8fe67b91c452441b6cb292a2bc7" +source = "git+https://github.com/servo/rust-cgl#16144321dc18d8ab538ee2acc0d2dad155a17899" dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clipboard" version = "0.0.1" -source = "git+https://github.com/aweinstock314/rust-x11-clipboard#eae9596e7e407c8b6037b934c1a8e42a309423fd" +source = "git+https://github.com/servo/rust-x11-clipboard#43afb218871e3148758c603f335576cb101cb1fa" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] [[package]] name = "clock_ticks" -version = "0.0.4" -source = "git+https://github.com/tomaka/clock_ticks#6a3005279bedc406b13eea09ff92447f05ca0de6" - -[[package]] -name = "cocoa" -version = "0.1.1" -source = "git+https://github.com/servo/rust-cocoa#ca3441a14783aa0683e073f1a1f990ed21900718" +version = "0.0.5" +source = "git+https://github.com/tomaka/clock_ticks#462848731d99ed2f800e2e5a19e2d8ca3b11c90c" dependencies = [ - "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -108,7 +104,7 @@ name = "compositing" version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", - "clipboard 0.0.1 (git+https://github.com/aweinstock314/rust-x11-clipboard)", + "clipboard 0.0.1 (git+https://github.com/servo/rust-x11-clipboard)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", "core_text 0.1.0 (git+https://github.com/servo/rust-core-text)", "devtools_traits 0.0.1", @@ -117,73 +113,79 @@ dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "layout_traits 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net 0.0.1", "net_traits 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", "script_traits 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] [[package]] name = "cookie" -version = "0.1.14" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_foundation" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-foundation#c577bd64b0301fe926cf7b757b9852a1ce1d521d" +source = "git+https://github.com/servo/rust-core-foundation#928efbae42fc596e6ede2cf0949c3d6d6f3dad8f" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_graphics" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-graphics#e169ad38f71ed003c21fb550a9dfa0e51423ed3a" +source = "git+https://github.com/servo/rust-core-graphics#da0d2fe947412afea55b438454194b2183c21594" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_text" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-text#8809f011445585d023d5e2a0712a1adcbf7ce609" +source = "git+https://github.com/servo/rust-core-text#bc6994c3765f0660e9c04f5488ba194a9354e8fb" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cssparser" -version = "0.2.0" -source = "git+https://github.com/servo/rust-cssparser#56d5f94d5239d4bd68358813405e4d5823c01ff6" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "debug-builders" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "devtools" version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -192,100 +194,109 @@ name = "devtools_traits" version = "0.0.1" dependencies = [ "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "egl" version = "0.1.0" -source = "git+https://github.com/servo/rust-egl#328e79b6256dea346f1821ccc4215e95fd1d58bc" +source = "git+https://github.com/servo/rust-egl#c0159346b3adfdcf13f2cd86f5ee41750a72c078" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "encoding" -version = "0.2.25" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding-index-japanese 1.20141219.2 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-korean 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-simpchinese 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-singlebyte 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-tradchinese 1.20141219.2 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-japanese" -version = "1.20141219.2" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-korean" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-simpchinese" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-singlebyte" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-tradchinese" -version = "1.20141219.2" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding_index_tests" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "expat-sys" version = "2.1.0" -source = "git+https://github.com/servo/libexpat#523a2f2f51b41adf7bb5c4c65e80db0cb615d70b" +source = "git+https://github.com/servo/libexpat#5f798cfbb74650a5e1d95e4c03a9e41e55e28625" [[package]] name = "flate2" -version = "0.2.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "fnv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "fontconfig" version = "0.1.0" -source = "git+https://github.com/servo/rust-fontconfig#91195bd29daa9280680bb28ba556821d504a17c6" +source = "git+https://github.com/servo/rust-fontconfig#7839e5adcb4d6da3cefe2256f5071ac0203b9206" dependencies = [ "fontconfig-sys 2.11.1 (git+https://github.com/servo/libfontconfig)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "fontconfig-sys" version = "2.11.1" -source = "git+https://github.com/servo/libfontconfig#adc60cacbca697123f4535ce2ff07619ec013cec" +source = "git+https://github.com/servo/libfontconfig#ce4a38633dc649b95c9b4935c0cce53e76d8b46a" dependencies = [ "expat-sys 2.1.0 (git+https://github.com/servo/libexpat)", "freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)", @@ -296,38 +307,41 @@ name = "freetype" version = "0.1.0" source = "git+https://github.com/servo/rust-freetype#f256a9ac84893f0a183b8966de2a3a03d7552b8b" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "freetype-sys" version = "2.4.11" -source = "git+https://github.com/servo/libfreetype2#a488dfd86872bf9c163d54a7f73a5dc4d3c4fd9e" +source = "git+https://github.com/servo/libfreetype2#50c1cf412d87f20ccbb940e39a14a38ae7cbb512" [[package]] name = "gcc" -version = "0.3.1" -source = "git+https://github.com/alexcrichton/gcc-rs#564247d019449ba46f25f64ffdefade5968b6ae7" +version = "0.3.4" +source = "git+https://github.com/alexcrichton/gcc-rs#9596a4e6da55e5ddbad6fd645b9727aae6b545ef" [[package]] name = "gcc" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gdi32-sys" -version = "0.0.4" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "geom" version = "0.1.0" -source = "git+https://github.com/servo/rust-geom#c47fc0f927b6d6e5543fe3b5445c86810831dce1" +source = "git+https://github.com/servo/rust-geom#c4bdb1ef8f4915ae636eb752b103f69246b50304" dependencies = [ - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -344,20 +358,20 @@ dependencies = [ "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "harfbuzz 0.1.0 (git+https://github.com/servo/rust-harfbuzz)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -369,51 +383,66 @@ dependencies = [ ] [[package]] +name = "gl" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "gl_common" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gl_generator" -version = "0.0.19" +version = "0.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "xml-rs 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gleam" version = "0.0.1" -source = "git+https://github.com/servo/gleam#70c5f2ea3ef3602277b7c380c24b504e42338056" +source = "git+https://github.com/servo/gleam#f2edabf2ef0474bb270b107e5e68c2727c4a422d" dependencies = [ "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glutin" -version = "0.0.7" -source = "git+https://github.com/servo/glutin?branch=servo#0feab4842c5b229bfe88739d2c526d03c198fd33" +version = "0.0.26" +source = "git+https://github.com/servo/glutin?branch=servo#c1af76550f311e3da7a08d393b4ea9805cb61a7b" dependencies = [ - "android_glue 0.0.1 (git+https://github.com/tomaka/android-rs-glue)", - "cocoa 0.1.1 (git+https://github.com/servo/rust-cocoa)", - "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", - "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", - "gdi32-sys 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "android_glue 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gdi32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_cocoa 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_core_foundation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_core_graphics 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "kernel32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "user32-sys 0.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "osmesa-sys 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "user32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", + "x11 0.0.32 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -426,99 +455,139 @@ dependencies = [ "egl 0.1.0 (git+https://github.com/servo/rust-egl)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", - "glutin 0.0.7 (git+https://github.com/servo/glutin?branch=servo)", + "glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "script_traits 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "glutin_cocoa" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_core_foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_core_graphics" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "glutin_core_foundation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "glx" version = "0.0.1" -source = "git+https://github.com/servo/rust-glx#f2103861d38076ef5e01a8c2f58df1e79ca12f41" +source = "git+https://github.com/servo/rust-glx#60ac0aee2438eadb4b51ddc8eac6fc4b5ca8e447" dependencies = [ "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "harfbuzz" version = "0.1.0" -source = "git+https://github.com/servo/rust-harfbuzz#cc875777f820da0b85f39c2359d9609650b16600" +source = "git+https://github.com/servo/rust-harfbuzz#33b6fd019fc04e46dd5fe15a5faf8efb1a9a0128" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "html5ever" version = "0.0.0" -source = "git+https://github.com/servo/html5ever#8bad1ca8e1e05a7972be80acc64efd729ffdc8a5" +source = "git+https://github.com/servo/html5ever#74dc5f5a36451cfbe789488b20d51bef97c63898" dependencies = [ "html5ever_macros 0.0.0 (git+https://github.com/servo/html5ever)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mac 0.0.2 (git+https://github.com/reem/rust-mac)", - "phf 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_macros 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_macros 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "html5ever_macros" version = "0.0.0" -source = "git+https://github.com/servo/html5ever#8bad1ca8e1e05a7972be80acc64efd729ffdc8a5" +source = "git+https://github.com/servo/html5ever#74dc5f5a36451cfbe789488b20d51bef97c63898" dependencies = [ "mac 0.0.2 (git+https://github.com/reem/rust-mac)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "httparse" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "hyper" -version = "0.3.0" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "httparse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "typeable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "io_surface" version = "0.1.0" -source = "git+https://github.com/servo/rust-io-surface#f380a03a9b0e0316866d4320d46a78dda87efbec" +source = "git+https://github.com/servo/rust-io-surface#ab0ebd4ea6dd953c1581d9486b9e80ecf3c7577d" dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "js" version = "0.1.0" -source = "git+https://github.com/servo/rust-mozjs#402b7b2db8816ffeccacfa9a8d316f4487e96ba0" +source = "git+https://github.com/servo/rust-mozjs#30a1ad31d1ee47a8e4e1ef582e793badfb405fa0" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel32-sys" -version = "0.0.11" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -529,7 +598,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "layers" version = "0.1.0" -source = "git+https://github.com/servo/rust-layers#df3a14d00260c8ab506565972555931444361ff8" +source = "git+https://github.com/servo/rust-layers#018259e838c3842032010829feeaba316e577376" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", @@ -539,8 +608,10 @@ dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", "glx 0.0.1 (git+https://github.com/servo/rust-glx)", "io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] @@ -551,26 +622,26 @@ dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "canvas 0.0.1", - "clock_ticks 0.0.4 (git+https://github.com/tomaka/clock_ticks)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "clock_ticks 0.0.5 (git+https://github.com/tomaka/clock_ticks)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "layout_traits 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script 0.0.1", "script_traits 0.0.1", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -583,32 +654,40 @@ dependencies = [ "net_traits 0.0.1", "profile_traits 0.0.1", "script_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "lazy_static" -version = "0.1.8" -source = "git+https://github.com/Kimundi/lazy-static.rs#56b4be4141d3c58273cf5ee1d2e956e2f22248b9" +version = "0.1.10" +source = "git+https://github.com/Kimundi/lazy-static.rs#1366fce0e706ee8530c88b80039946c4c7e1f993" + +[[package]] +name = "lazy_static" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libressl-pnacl-sys" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pnacl-build-helper 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pnacl-build-helper 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.2.5" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "mac" @@ -616,6 +695,14 @@ version = "0.0.2" source = "git+https://github.com/reem/rust-mac#6316d3f4663756180fd236b126a84e245e978765" [[package]] +name = "malloc_buf" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "matches" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -625,21 +712,21 @@ name = "mime" version = "0.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz-sys" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "mod_path" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -655,11 +742,11 @@ dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] @@ -668,18 +755,18 @@ dependencies = [ name = "net" version = "0.0.1" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "net_traits 0.0.1", - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "regex_macros 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "regex_macros 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -687,11 +774,11 @@ dependencies = [ name = "net_tests" version = "0.0.1" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "net 0.0.1", "net_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -700,80 +787,119 @@ name = "net_traits" version = "0.0.1" dependencies = [ "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "png 0.1.0 (git+https://github.com/servo/rust-png)", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "num" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "num_cpus" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "objc" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "malloc_buf 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "offscreen_gl_context" version = "0.0.1" -source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#9547d416019b15e0e59dc5176f5b1a14e14b44ca" +source = "git+https://github.com/servo/rust-offscreen-rendering-context#9ef802439467c287178afe46c5dd7adec13993eb" dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", "glx 0.0.1 (git+https://github.com/servo/rust-glx)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] [[package]] name = "openssl" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "openssl-sys" -version = "0.5.1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libressl-pnacl-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "osmesa-sys" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libressl-pnacl-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gl 0.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "debug-builders 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_generator" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_macros" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_generator 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_generator 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_shared" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pkg-config" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -785,32 +911,36 @@ dependencies = [ [[package]] name = "pnacl-build-helper" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "png" version = "0.1.0" -source = "git+https://github.com/servo/rust-png#1d9c59c97598014860077f372443ae98b35ff4d9" +source = "git+https://github.com/servo/rust-png#811e4d339441dd34fb087fc895e1619ba882933f" dependencies = [ - "gcc 0.3.1 (git+https://github.com/alexcrichton/gcc-rs)", + "gcc 0.3.4 (git+https://github.com/alexcrichton/gcc-rs)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "png-sys 1.6.16 (git+https://github.com/servo/rust-png)", ] [[package]] name = "png-sys" version = "1.6.16" -source = "git+https://github.com/servo/rust-png#1d9c59c97598014860077f372443ae98b35ff4d9" +source = "git+https://github.com/servo/rust-png#811e4d339441dd34fb087fc895e1619ba882933f" [[package]] name = "profile" version = "0.0.1" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "profile_traits 0.0.1", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", "task_info 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -818,35 +948,39 @@ dependencies = [ name = "profile_traits" version = "0.0.1" dependencies = [ - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "quicksort" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "rand" -version = "0.1.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "0.1.18" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "regex_macros" -version = "0.1.11" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-serialize" -version = "0.3.4" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -855,30 +989,32 @@ version = "0.0.1" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "canvas 0.0.1", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "html5ever 0.0.0 (git+https://github.com/servo/html5ever)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "js 0.1.0 (git+https://github.com/servo/rust-mozjs)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.1.11 (git+https://github.com/rust-lang/uuid)", + "uuid 0.1.16 (git+https://github.com/rust-lang/uuid)", "webdriver_traits 0.0.1", ] @@ -895,10 +1031,10 @@ version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] @@ -906,11 +1042,13 @@ dependencies = [ [[package]] name = "selectors" version = "0.1.0" -source = "git+https://github.com/servo/rust-selectors#0d7d846090c21d71ebb1bc17921806933a38f52b" +source = "git+https://github.com/servo/rust-selectors#1fda09bf0c59acfcb697f71b38dad22108b3d27a" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "quicksort 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", ] @@ -918,35 +1056,43 @@ dependencies = [ [[package]] name = "skia" version = "0.0.20130412" -source = "git+https://github.com/servo/skia?branch=upstream-2014-06-16#db5b5393c83da9ff5b8fb2076481e98fb2b659f2" +source = "git+https://github.com/servo/skia#d60e6753b2b23b3b4ff787b505da56cfad0335c9" dependencies = [ "expat-sys 2.1.0 (git+https://github.com/servo/libexpat)", "freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)", ] [[package]] +name = "smallvec" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "stb_image" version = "0.1.0" -source = "git+https://github.com/servo/rust-stb-image#b683cc9e7ba52a1bb65361347da0df1bc9c5e854" +source = "git+https://github.com/servo/rust-stb-image#f6c411b381322609a321b7fb5f948b2365973604" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "string_cache" version = "0.0.0" -source = "git+https://github.com/servo/string-cache#124cb555651bd7838c5c6dc4788bc4f5350947a9" +source = "git+https://github.com/servo/string-cache#385c4ac197742e355631209be3613c8a9c7594b6" dependencies = [ - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", - "phf 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_macros 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", + "phf 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_macros 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", ] [[package]] name = "string_cache_plugin" version = "0.0.0" -source = "git+https://github.com/servo/string-cache#124cb555651bd7838c5c6dc4788bc4f5350947a9" +source = "git+https://github.com/servo/string-cache#385c4ac197742e355631209be3613c8a9c7594b6" dependencies = [ - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", "mac 0.0.2 (git+https://github.com/reem/rust-mac)", ] @@ -955,19 +1101,18 @@ name = "style" version = "0.0.1" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "mod_path 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "mod_path 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -975,13 +1120,13 @@ dependencies = [ name = "style_tests" version = "0.0.1" dependencies = [ - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -990,44 +1135,57 @@ name = "task_info" version = "0.0.1" [[package]] +name = "tempdir" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "tenacious" version = "0.0.1" source = "git+https://github.com/Manishearth/rust-tenacious.git#d61782e70005a9f0cdf66f366d4ec88fc563ea1e" [[package]] -name = "text_writer" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] name = "time" -version = "0.1.19" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "traitobject" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "typeable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "unicase" -version = "0.0.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "url" -version = "0.2.23" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "user32-sys" -version = "0.0.11" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1036,19 +1194,22 @@ version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", + "smallvec 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1061,32 +1222,32 @@ dependencies = [ [[package]] name = "uuid" -version = "0.1.11" -source = "git+https://github.com/rust-lang/uuid#c7862508f84b114d22bb68ec01202eafc50a81b2" +version = "0.1.16" +source = "git+https://github.com/rust-lang/uuid#7c767220c41746d346c8195e31ddf090ac6568e7" dependencies = [ - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "uuid" -version = "0.1.11" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webdriver" -version = "0.0.1" -source = "git+https://github.com/jgraham/webdriver-rust.git#fa625e3cf8fdb39b503c1cc902506df3a1d1c9de" +version = "0.1.0" +source = "git+https://github.com/jgraham/webdriver-rust.git#66547888f47bae7e938a92af4586276479343216" dependencies = [ - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1094,11 +1255,11 @@ name = "webdriver_server" version = "0.0.1" dependencies = [ "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "webdriver 0.0.1 (git+https://github.com/jgraham/webdriver-rust.git)", + "uuid 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "webdriver 0.1.0 (git+https://github.com/jgraham/webdriver-rust.git)", "webdriver_traits 0.0.1", ] @@ -1106,15 +1267,23 @@ dependencies = [ name = "webdriver_traits" version = "0.0.1" dependencies = [ - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "winapi" -version = "0.1.15" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "x11" +version = "0.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1123,12 +1292,12 @@ version = "0.1.0" source = "git+https://github.com/servo/rust-xlib#1a0f3d48fbebf96e2d1bf83ac71309b27f49e0c7" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "xml-rs" -version = "0.1.20" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/components/servo/lib.rs b/components/servo/lib.rs index b7a45efa1de..f3837112a82 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -17,7 +17,6 @@ // The `Browser` is fed events from a generic type that implements the // `WindowMethods` trait. #![feature(libc, thread_local)] -#![cfg_attr(not(test), feature(path))] extern crate compositing; extern crate devtools; diff --git a/components/servo/main.rs b/components/servo/main.rs index 1bf329920e3..6de2b2d1399 100644 --- a/components/servo/main.rs +++ b/components/servo/main.rs @@ -15,7 +15,7 @@ //! //! [glutin]: https://github.com/tomaka/glutin -#![feature(start)] +#![feature(start, libc)] // The Servo engine extern crate servo; @@ -26,7 +26,7 @@ extern crate net; // Servo common utilitiess extern crate util; // The window backed by glutin -extern crate "glutin_app" as app; +extern crate glutin_app as app; extern crate time; #[cfg(target_os="android")] @@ -187,7 +187,6 @@ mod android { use self::libc::funcs::posix88::stdio::fdopen; use self::libc::funcs::c95::stdio::fgets; use util::task::spawn_named; - use std::mem; use std::ffi::CString; use std::str::from_utf8; @@ -195,14 +194,15 @@ mod android { let mut pipes: [c_int; 2] = [ 0, 0 ]; pipe(pipes.as_mut_ptr()); dup2(pipes[1], file_no); - let mode = CString::from_slice("r".as_bytes()); + let mode = CString::new("r").unwrap(); let input_file = FilePtr(fdopen(pipes[0], mode.as_ptr())); spawn_named("android-logger".to_owned(), move || { loop { - let mut read_buffer: [u8; 1024] = mem::zeroed(); + let mut read_buffer: Vec<u8> = vec!(); + read_buffer.reserve(1024); let FilePtr(input_file) = input_file; fgets(read_buffer.as_mut_ptr() as *mut i8, read_buffer.len() as i32, input_file); - let cs = CString::from_slice(&read_buffer); + let cs = CString::new(read_buffer).unwrap(); match from_utf8(cs.as_bytes()) { Ok(s) => android_glue::write_log(s), _ => {} diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml index dde46e98962..96438546fc5 100644 --- a/components/style/Cargo.toml +++ b/components/style/Cargo.toml @@ -18,9 +18,6 @@ path = "../util" [dependencies.geom] git = "https://github.com/servo/rust-geom" -[dependencies.cssparser] -git = "https://github.com/servo/rust-cssparser" - [dependencies.selectors] git = "https://github.com/servo/rust-selectors" @@ -34,10 +31,10 @@ git = "https://github.com/servo/string-cache" git = "https://github.com/servo/string-cache" [dependencies] -text_writer = "0.1.1" encoding = "0.2" rustc-serialize = "0.3" matches = "0.1" url = "0.2.16" mod_path = "0.1" bitflags = "*" +cssparser = "0.3.1" diff --git a/components/style/animation.rs b/components/style/animation.rs index 06e073bf745..d8652b3ea0e 100644 --- a/components/style/animation.rs +++ b/components/style/animation.rs @@ -21,10 +21,8 @@ use values::computed::{LengthOrPercentageOrAuto, LengthOrPercentageOrNone, Lengt use values::CSSFloat; use cssparser::{RGBA, Color}; -use std::num::Float; use std::cmp::Ordering; use std::iter::repeat; -use std::num::FromPrimitive; use util::bezier::Bezier; use util::geometry::Au; @@ -155,7 +153,7 @@ impl PropertyAnimation { } } - pub fn update(&self, style: &mut ComputedValues, time: f64) { + pub fn update(&self, style: &mut ComputedValues, time: f32) { let progress = match self.timing_function { TransitionTimingFunction::CubicBezier(p1, p2) => { // See `WebCore::AnimationBase::solveEpsilon(double)` in WebKit. @@ -163,10 +161,10 @@ impl PropertyAnimation { Bezier::new(p1, p2).solve(time, epsilon) } TransitionTimingFunction::Steps(steps, StartEnd::Start) => { - (time * (steps as f64)).ceil() / (steps as f64) + (time * (steps as f32)).ceil() / (steps as f32) } TransitionTimingFunction::Steps(steps, StartEnd::End) => { - (time * (steps as f64)).floor() / (steps as f64) + (time * (steps as f32)).floor() / (steps as f32) } }; @@ -336,19 +334,19 @@ impl AnimatedProperty { } trait Interpolate { - fn interpolate(&self, other: &Self, time: f64) -> Option<Self>; + fn interpolate(&self, other: &Self, time: f32) -> Option<Self>; } impl Interpolate for Au { #[inline] - fn interpolate(&self, other: &Au, time: f64) -> Option<Au> { - Some(Au((self.0 as f64 + (other.0 as f64 - self.0 as f64) * time).round() as i32)) + fn interpolate(&self, other: &Au, time: f32) -> Option<Au> { + Some(Au((self.0 as f32 + (other.0 as f32 - self.0 as f32) * time).round() as i32)) } } impl <T> Interpolate for Option<T> where T:Interpolate { #[inline] - fn interpolate(&self, other: &Option<T>, time: f64) -> Option<Option<T>> { + fn interpolate(&self, other: &Option<T>, time: f32) -> Option<Option<T>> { match (self, other) { (&Some(ref this), &Some(ref other)) => { this.interpolate(other, time).and_then(|value| { @@ -360,32 +358,32 @@ impl <T> Interpolate for Option<T> where T:Interpolate { } } -impl Interpolate for f64 { +impl Interpolate for f32 { #[inline] - fn interpolate(&self, other: &f64, time: f64) -> Option<f64> { + fn interpolate(&self, other: &f32, time: f32) -> Option<f32> { Some(*self + (*other - *self) * time) } } -impl Interpolate for f32 { +impl Interpolate for f64 { #[inline] - fn interpolate(&self, other: &f32, time: f64) -> Option<f32> { - Some(*self + (*other - *self) * (time as f32)) + fn interpolate(&self, other: &f64, time: f32) -> Option<f64> { + Some(*self + (*other - *self) * (time as f64)) } } impl Interpolate for i32 { #[inline] - fn interpolate(&self, other: &i32, time: f64) -> Option<i32> { - let a = *self as f64; - let b = *other as f64; + fn interpolate(&self, other: &i32, time: f32) -> Option<i32> { + let a = *self as f32; + let b = *other as f32; Some((a + (b - a) * time).round() as i32) } } impl Interpolate for Visibility { #[inline] - fn interpolate(&self, other: &Visibility, time: f64) + fn interpolate(&self, other: &Visibility, time: f32) -> Option<Visibility> { match (*self, *other) { (Visibility::visible, _) | (_, Visibility::visible) => { @@ -404,7 +402,7 @@ impl Interpolate for Visibility { impl Interpolate for ZIndex { #[inline] - fn interpolate(&self, other: &ZIndex, time: f64) + fn interpolate(&self, other: &ZIndex, time: f32) -> Option<ZIndex> { match (*self, *other) { (ZIndex::Number(ref this), @@ -420,7 +418,7 @@ impl Interpolate for ZIndex { impl Interpolate for VerticalAlign { #[inline] - fn interpolate(&self, other: &VerticalAlign, time: f64) + fn interpolate(&self, other: &VerticalAlign, time: f32) -> Option<VerticalAlign> { match (*self, *other) { (VerticalAlign::Length(ref this), @@ -436,7 +434,7 @@ impl Interpolate for VerticalAlign { impl Interpolate for BorderSpacing { #[inline] - fn interpolate(&self, other: &BorderSpacing, time: f64) + fn interpolate(&self, other: &BorderSpacing, time: f32) -> Option<BorderSpacing> { self.horizontal.interpolate(&other.horizontal, time).and_then(|horizontal| { self.vertical.interpolate(&other.vertical, time).and_then(|vertical| { @@ -448,7 +446,7 @@ impl Interpolate for BorderSpacing { impl Interpolate for RGBA { #[inline] - fn interpolate(&self, other: &RGBA, time: f64) -> Option<RGBA> { + fn interpolate(&self, other: &RGBA, time: f32) -> Option<RGBA> { match (self.red.interpolate(&other.red, time), self.green.interpolate(&other.green, time), self.blue.interpolate(&other.blue, time), @@ -463,7 +461,7 @@ impl Interpolate for RGBA { impl Interpolate for Color { #[inline] - fn interpolate(&self, other: &Color, time: f64) -> Option<Color> { + fn interpolate(&self, other: &Color, time: f32) -> Option<Color> { match (*self, *other) { (Color::RGBA(ref this), Color::RGBA(ref other)) => { this.interpolate(other, time).and_then(|value| { @@ -477,7 +475,7 @@ impl Interpolate for Color { impl Interpolate for LengthOrPercentage { #[inline] - fn interpolate(&self, other: &LengthOrPercentage, time: f64) + fn interpolate(&self, other: &LengthOrPercentage, time: f32) -> Option<LengthOrPercentage> { match (*self, *other) { (LengthOrPercentage::Length(ref this), @@ -499,7 +497,7 @@ impl Interpolate for LengthOrPercentage { impl Interpolate for LengthOrPercentageOrAuto { #[inline] - fn interpolate(&self, other: &LengthOrPercentageOrAuto, time: f64) + fn interpolate(&self, other: &LengthOrPercentageOrAuto, time: f32) -> Option<LengthOrPercentageOrAuto> { match (*self, *other) { (LengthOrPercentageOrAuto::Length(ref this), @@ -524,7 +522,7 @@ impl Interpolate for LengthOrPercentageOrAuto { impl Interpolate for LengthOrPercentageOrNone { #[inline] - fn interpolate(&self, other: &LengthOrPercentageOrNone, time: f64) + fn interpolate(&self, other: &LengthOrPercentageOrNone, time: f32) -> Option<LengthOrPercentageOrNone> { match (*self, *other) { (LengthOrPercentageOrNone::Length(ref this), @@ -549,7 +547,7 @@ impl Interpolate for LengthOrPercentageOrNone { impl Interpolate for LineHeight { #[inline] - fn interpolate(&self, other: &LineHeight, time: f64) + fn interpolate(&self, other: &LineHeight, time: f32) -> Option<LineHeight> { match (*self, *other) { (LineHeight::Length(ref this), @@ -572,20 +570,39 @@ impl Interpolate for LineHeight { } } +/// http://dev.w3.org/csswg/css-transitions/#animtype-font-weight impl Interpolate for FontWeight { #[inline] - fn interpolate(&self, other: &FontWeight, time: f64) + fn interpolate(&self, other: &FontWeight, time: f32) -> Option<FontWeight> { - let a = (*self as isize) as f64; - let b = (*other as isize) as f64; - let weight: Option<FontWeight> = FromPrimitive::from_isize((a + (b - a) * time).round() as isize); - weight + let a = (*self as u32) as f32; + let b = (*other as u32) as f32; + let weight = a + (b - a) * time; + Some(if weight < 150. { + FontWeight::Weight100 + } else if weight < 250. { + FontWeight::Weight200 + } else if weight < 350. { + FontWeight::Weight300 + } else if weight < 450. { + FontWeight::Weight400 + } else if weight < 550. { + FontWeight::Weight500 + } else if weight < 650. { + FontWeight::Weight600 + } else if weight < 750. { + FontWeight::Weight700 + } else if weight < 850. { + FontWeight::Weight800 + } else { + FontWeight::Weight900 + }) } } impl Interpolate for ClipRect { #[inline] - fn interpolate(&self, other: &ClipRect, time: f64) + fn interpolate(&self, other: &ClipRect, time: f32) -> Option<ClipRect> { match (self.top.interpolate(&other.top, time), self.right.interpolate(&other.right, time), @@ -601,7 +618,7 @@ impl Interpolate for ClipRect { impl Interpolate for BackgroundPosition { #[inline] - fn interpolate(&self, other: &BackgroundPosition, time: f64) + fn interpolate(&self, other: &BackgroundPosition, time: f32) -> Option<BackgroundPosition> { match (self.horizontal.interpolate(&other.horizontal, time), self.vertical.interpolate(&other.vertical, time)) { @@ -615,7 +632,7 @@ impl Interpolate for BackgroundPosition { impl Interpolate for TextShadow { #[inline] - fn interpolate(&self, other: &TextShadow, time: f64) + fn interpolate(&self, other: &TextShadow, time: f32) -> Option<TextShadow> { match (self.offset_x.interpolate(&other.offset_x, time), self.offset_y.interpolate(&other.offset_y, time), @@ -631,7 +648,7 @@ impl Interpolate for TextShadow { impl Interpolate for TextShadowList { #[inline] - fn interpolate(&self, other: &TextShadowList, time: f64) + fn interpolate(&self, other: &TextShadowList, time: f32) -> Option<TextShadowList> { let zero = TextShadow { offset_x: Au(0), diff --git a/components/style/build.rs b/components/style/build.rs index 8e2117614cf..80965f329f5 100644 --- a/components/style/build.rs +++ b/components/style/build.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/. */ -#![feature(io, path)] - use std::env; use std::fs::File; use std::io::Write; diff --git a/components/style/legacy.rs b/components/style/legacy.rs index c65332246a4..f3a66f5138a 100644 --- a/components/style/legacy.rs +++ b/components/style/legacy.rs @@ -16,8 +16,8 @@ use properties::PropertyDeclaration; use properties::longhands::{self, border_spacing}; use selector_matching::Stylist; -use selectors::smallvec::VecLike; use util::geometry::Au; +use util::smallvec::VecLike; use util::str::LengthOrPercentageOrAuto; /// Legacy presentational attributes that take a length as defined in HTML5 § 2.4.4.4. @@ -88,9 +88,9 @@ impl PresentationalHintSynthesis for Stylist { V: VecLike<DeclarationBlock<Vec<PropertyDeclaration>>> { let element = node.as_element(); - let length = matching_rules_list.vec_len(); + let length = matching_rules_list.len(); element.synthesize_presentational_hints_for_legacy_attributes(matching_rules_list); - if matching_rules_list.vec_len() != length { + if matching_rules_list.len() != length { // Never share style for elements with preshints *shareable = false; } @@ -101,13 +101,13 @@ impl PresentationalHintSynthesis for Stylist { LengthOrPercentageOrAuto::Auto => {} LengthOrPercentageOrAuto::Percentage(percentage) => { let width_value = specified::LengthOrPercentageOrAuto::Percentage(percentage); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::Width(SpecifiedValue(width_value)))); *shareable = false } LengthOrPercentageOrAuto::Length(length) => { let width_value = specified::LengthOrPercentageOrAuto::Length(specified::Length::Absolute(length)); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::Width(SpecifiedValue(width_value)))); *shareable = false } @@ -127,7 +127,7 @@ impl PresentationalHintSynthesis for Stylist { None => {} Some(length) => { let width_value = specified::Length::Absolute(Au::from_px(length as isize)); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::BorderSpacing( SpecifiedValue( border_spacing::SpecifiedValue { @@ -146,7 +146,7 @@ impl PresentationalHintSynthesis for Stylist { Some(value) if value != 0 => { let value = specified::Length::ServoCharacterWidth( specified::CharacterWidth(value)); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::Width(SpecifiedValue( specified::LengthOrPercentageOrAuto::Length(value))))); *shareable = false @@ -166,7 +166,7 @@ impl PresentationalHintSynthesis for Stylist { // // https://html.spec.whatwg.org/multipage/#textarea-effective-width let value = specified::Length::ServoCharacterWidth(specified::CharacterWidth(value)); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::Width(SpecifiedValue( specified::LengthOrPercentageOrAuto::Length(value))))); *shareable = false @@ -179,7 +179,7 @@ impl PresentationalHintSynthesis for Stylist { // // https://html.spec.whatwg.org/multipage/#textarea-effective-height let value = specified::Length::FontRelative(specified::FontRelativeLength::Em(value as CSSFloat)); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::Height(SpecifiedValue( longhands::height::SpecifiedValue( specified::LengthOrPercentageOrAuto::Length(value)))))); @@ -205,16 +205,16 @@ impl PresentationalHintSynthesis for Stylist { None => {} Some(length) => { let width_value = specified::Length::Absolute(Au::from_px(length as isize)); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::BorderTopWidth(SpecifiedValue( longhands::border_top_width::SpecifiedValue(width_value))))); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::BorderLeftWidth(SpecifiedValue( longhands::border_left_width::SpecifiedValue(width_value))))); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::BorderBottomWidth(SpecifiedValue( longhands::border_bottom_width::SpecifiedValue(width_value))))); - matching_rules_list.vec_push(from_declaration( + matching_rules_list.push(from_declaration( PropertyDeclaration::BorderRightWidth(SpecifiedValue( longhands::border_right_width::SpecifiedValue(width_value))))); *shareable = false diff --git a/components/style/lib.rs b/components/style/lib.rs index b4de6f762c4..109216ecf55 100644 --- a/components/style/lib.rs +++ b/components/style/lib.rs @@ -18,7 +18,6 @@ extern crate collections; extern crate geom; -extern crate text_writer; extern crate url; #[macro_use] @@ -28,7 +27,7 @@ extern crate cssparser; extern crate matches; extern crate encoding; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate string_cache; extern crate selectors; diff --git a/components/style/node.rs b/components/style/node.rs index 6d2c84ac8cc..011066951c3 100644 --- a/components/style/node.rs +++ b/components/style/node.rs @@ -7,10 +7,10 @@ use legacy::{IntegerAttribute, LengthAttribute, UnsignedIntegerAttribute}; use properties::PropertyDeclaration; +use util::smallvec::VecLike; use util::str::LengthOrPercentageOrAuto; use selectors::matching::DeclarationBlock; -use selectors::smallvec::VecLike; pub use selectors::tree::{TNode, TElement}; pub trait TElementAttributes : Copy { diff --git a/components/style/properties.mako.rs b/components/style/properties.mako.rs index 9100f8221cd..ccf5095c0e8 100644 --- a/components/style/properties.mako.rs +++ b/components/style/properties.mako.rs @@ -232,10 +232,10 @@ pub mod longhands { use values::computed::{ToComputedValue, Context}; use util::geometry::Au; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { self.0.to_css(dest) } } @@ -384,7 +384,7 @@ pub mod longhands { pub type SpecifiedValue = computed_value::T; pub mod computed_value { use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(PartialEq, Clone, Eq, Copy, Debug)] pub enum T { @@ -393,7 +393,7 @@ pub mod longhands { } impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &T::Auto => dest.write_str("auto"), &T::Number(number) => write!(dest, "{}", number), @@ -437,10 +437,10 @@ pub mod longhands { <%self:longhand name="height"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { self.0.to_css(dest) } } @@ -493,7 +493,7 @@ pub mod longhands { <%self:longhand name="line-height"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use values::CSSFloat; #[derive(Clone, PartialEq, Copy)] @@ -505,7 +505,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &SpecifiedValue::Normal => dest.write_str("normal"), &SpecifiedValue::Length(length) => length.to_css(dest), @@ -583,7 +583,7 @@ pub mod longhands { <%self:longhand name="vertical-align"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; <% vertical_align_keywords = ( "baseline sub super top text-top middle bottom text-bottom".split()) %> @@ -597,7 +597,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { % for keyword in vertical_align_keywords: &SpecifiedValue::${to_rust_ident(keyword)} => dest.write_str("${keyword}"), @@ -716,12 +716,12 @@ pub mod longhands { use values::computed::{Context, ToComputedValue}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; pub use self::computed_value::T as SpecifiedValue; impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { self.0.to_css(dest) } } @@ -778,7 +778,7 @@ pub mod longhands { use super::super::list_style_type; use cssparser::{self, ToCss}; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(PartialEq, Eq, Clone)] pub enum ContentItem { @@ -799,7 +799,7 @@ pub mod longhands { } impl ToCss for ContentItem { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &ContentItem::String(ref s) => { cssparser::serialize_string(&**s, dest) @@ -837,7 +837,7 @@ pub mod longhands { } impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &T::normal => dest.write_str("normal"), &T::none => dest.write_str("none"), @@ -943,10 +943,9 @@ pub mod longhands { """)} <%self:longhand name="list-style-image"> - use std::borrow::IntoCow; use url::Url; use cssparser::{ToCss, Token}; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::{ToComputedValue, Context}; #[derive(Clone, PartialEq, Eq)] @@ -956,11 +955,11 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::None => dest.write_str("none"), SpecifiedValue::Url(ref url) => { - Token::Url(url.to_string().into_cow()).to_css(dest) + Token::Url(url.to_string().into()).to_css(dest) } } } @@ -997,11 +996,11 @@ pub mod longhands { </%self:longhand> <%self:longhand name="quotes"> - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::ComputedValueAsSpecified; + use std::borrow::Cow; use cssparser::{ToCss, Token}; - use std::borrow::IntoCow; pub use self::computed_value::T as SpecifiedValue; @@ -1013,16 +1012,16 @@ pub mod longhands { impl ComputedValueAsSpecified for SpecifiedValue {} impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let mut first = true; for pair in self.0.iter() { if !first { try!(dest.write_str(" ")); } first = false; - try!(Token::QuotedString((*pair.0).into_cow()).to_css(dest)); + try!(Token::QuotedString(Cow::from(&*pair.0)).to_css(dest)); try!(dest.write_str(" ")); - try!(Token::QuotedString((*pair.1).into_cow()).to_css(dest)); + try!(Token::QuotedString(Cow::from(&*pair.1)).to_css(dest)); } Ok(()) } @@ -1066,11 +1065,11 @@ pub mod longhands { <%self:longhand name="counter-increment"> use super::content; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::ComputedValueAsSpecified; use cssparser::{ToCss, Token}; - use std::borrow::{IntoCow, ToOwned}; + use std::borrow::{Cow, ToOwned}; pub use self::computed_value::T as SpecifiedValue; @@ -1087,15 +1086,15 @@ pub mod longhands { impl ComputedValueAsSpecified for SpecifiedValue {} impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let mut first = true; for pair in self.0.iter() { if !first { try!(dest.write_str(" ")); } first = false; - try!(Token::QuotedString(pair.0.as_slice().into_cow()).to_css(dest)); - try!(dest.write_str(format!(" {}", pair.1).as_slice())); + try!(Token::QuotedString(Cow::from(&*pair.0)).to_css(dest)); + try!(write!(dest, " {}", pair.1)); } Ok(()) } @@ -1145,7 +1144,7 @@ pub mod longhands { use values::specified::Image; use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; pub mod computed_value { use values::computed; @@ -1156,7 +1155,7 @@ pub mod longhands { pub struct SpecifiedValue(pub Option<Image>); impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue(Some(ref image)) => image.to_css(dest), SpecifiedValue(None) => dest.write_str("none"), @@ -1190,7 +1189,7 @@ pub mod longhands { <%self:longhand name="background-position"> use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::{ToComputedValue, Context}; pub mod computed_value { @@ -1210,7 +1209,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.horizontal.to_css(dest)); try!(dest.write_str(" ")); try!(self.vertical.to_css(dest)); @@ -1300,7 +1299,7 @@ pub mod longhands { <%self:longhand name="background-size"> use cssparser::{ToCss, Token}; use std::ascii::AsciiExt; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::{Context, ToComputedValue}; pub mod computed_value { @@ -1327,7 +1326,7 @@ pub mod longhands { } impl ToCss for SpecifiedExplicitSize { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.width.to_css(dest)); try!(dest.write_str(" ")); self.height.to_css(dest) @@ -1342,7 +1341,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::Explicit(ref size) => size.to_css(dest), SpecifiedValue::Cover => dest.write_str("cover"), @@ -1461,12 +1460,13 @@ pub mod longhands { use self::computed_value::FontFamily; use string_cache::Atom; use values::computed::ComputedValueAsSpecified; + pub use self::computed_value::T as SpecifiedValue; impl ComputedValueAsSpecified for SpecifiedValue {} pub mod computed_value { use cssparser::ToCss; use string_cache::Atom; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(PartialEq, Eq, Clone, Hash)] pub enum FontFamily { @@ -1487,15 +1487,15 @@ pub mod longhands { } } impl ToCss for FontFamily { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &FontFamily::FamilyName(ref name) => dest.write_str(name.as_slice()), } } } - impl ToCss for Vec<FontFamily> { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { - let mut iter = self.iter(); + impl ToCss for T { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + let mut iter = self.0.iter(); try!(iter.next().unwrap().to_css(dest)); for family in iter { try!(dest.write_str(", ")); @@ -1504,23 +1504,23 @@ pub mod longhands { Ok(()) } } - pub type T = Vec<FontFamily>; + #[derive(Clone, PartialEq, Eq, Hash)] + pub struct T(pub Vec<FontFamily>); } - pub type SpecifiedValue = computed_value::T; #[inline] pub fn get_initial_value() -> computed_value::T { - vec![FontFamily::FamilyName(Atom::from_slice("serif"))] + computed_value::T(vec![FontFamily::FamilyName(Atom::from_slice("serif"))]) } /// <family-name># /// <family-name> = <string> | [ <ident>+ ] /// TODO: <generic-family> pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { - input.parse_comma_separated(parse_one_family) + input.parse_comma_separated(parse_one_family).map(SpecifiedValue) } pub fn parse_one_family(input: &mut Parser) -> Result<FontFamily, ()> { if let Ok(value) = input.try(|input| input.expect_string()) { - return Ok(FontFamily::FamilyName(Atom::from_slice(value.as_slice()))) + return Ok(FontFamily::FamilyName(Atom::from_slice(&value))) } let first_ident = try!(input.expect_ident()); // match_ignore_ascii_case! { first_ident, @@ -1536,7 +1536,7 @@ pub mod longhands { value.push_str(" "); value.push_str(&ident); } - Ok(FontFamily::FamilyName(Atom::from_slice(value.as_slice()))) + Ok(FontFamily::FamilyName(Atom::from_slice(&value))) } </%self:longhand> @@ -1546,7 +1546,7 @@ pub mod longhands { <%self:longhand name="font-weight"> use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::{ToComputedValue, Context}; #[derive(Clone, PartialEq, Eq, Copy)] @@ -1559,7 +1559,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &SpecifiedValue::Bolder => dest.write_str("bolder"), &SpecifiedValue::Lighter => dest.write_str("lighter"), @@ -1596,7 +1596,7 @@ pub mod longhands { } pub mod computed_value { use std::fmt; - #[derive(PartialEq, Eq, Copy, Clone, Hash, FromPrimitive)] + #[derive(PartialEq, Eq, Copy, Clone, Hash)] pub enum T { % for weight in range(100, 901, 100): Weight${weight} = ${weight}, @@ -1667,10 +1667,10 @@ pub mod longhands { use util::geometry::Au; use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { self.0.to_css(dest) } } @@ -1730,12 +1730,59 @@ pub mod longhands { ${new_style_struct("InheritedText", is_inherited=True)} - ${single_keyword("text-align", "start end left right center justify")} + <%self:longhand name="text-align"> + pub use self::computed_value::T as SpecifiedValue; + use values::computed::ComputedValueAsSpecified; + impl ComputedValueAsSpecified for SpecifiedValue {} + pub mod computed_value { + macro_rules! define_text_align { + ( $( $name: ident => $discriminant: expr, )+ ) => { + define_css_keyword_enum! { T: + $( + stringify!($name) => $name, + )+ + } + impl T { + pub fn to_u32(self) -> u32 { + match self { + $( + T::$name => $discriminant, + )+ + } + } + pub fn from_u32(discriminant: u32) -> Option<T> { + match discriminant { + $( + $discriminant => Some(T::$name), + )+ + _ => None + } + } + } + } + } + define_text_align! { + start => 0, + end => 1, + left => 2, + right => 3, + center => 4, + justify => 5, + } + } + #[inline] pub fn get_initial_value() -> computed_value::T { + computed_value::T::start + } + pub fn parse(_context: &ParserContext, input: &mut Parser) + -> Result<SpecifiedValue, ()> { + computed_value::T::parse(input) + } + </%self:longhand> <%self:longhand name="letter-spacing"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Clone, Copy, PartialEq)] pub enum SpecifiedValue { @@ -1744,7 +1791,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::Normal => dest.write_str("normal"), SpecifiedValue::Specified(l) => l.to_css(dest), @@ -1786,7 +1833,7 @@ pub mod longhands { <%self:longhand name="word-spacing"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Clone, Copy, PartialEq)] pub enum SpecifiedValue { @@ -1795,7 +1842,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::Normal => dest.write_str("normal"), SpecifiedValue::Specified(l) => l.to_css(dest), @@ -1852,7 +1899,7 @@ pub mod longhands { <%self:longhand name="text-decoration"> use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::ComputedValueAsSpecified; impl ComputedValueAsSpecified for SpecifiedValue {} @@ -1867,7 +1914,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let mut space = false; if self.underline { try!(dest.write_str("underline")); @@ -2030,7 +2077,7 @@ pub mod longhands { use values::computed::{Context, ToComputedValue}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use util::geometry::Au; pub mod computed_value { @@ -2058,7 +2105,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.horizontal.to_css(dest)); try!(dest.write_str(" ")); self.vertical.to_css(dest) @@ -2137,7 +2184,7 @@ pub mod longhands { pub mod computed_value { use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use util::cursor::Cursor; #[derive(Clone, PartialEq, Eq, Copy, Debug)] @@ -2147,7 +2194,7 @@ pub mod longhands { } impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { T::AutoCursor => dest.write_str("auto"), T::SpecifiedCursor(c) => c.to_css(dest), @@ -2183,7 +2230,7 @@ pub mod longhands { <%self:longhand name="column-width" experimental="True"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Clone, Copy, PartialEq)] pub enum SpecifiedValue { @@ -2192,7 +2239,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::Auto => dest.write_str("auto"), SpecifiedValue::Specified(l) => l.to_css(dest), @@ -2234,7 +2281,7 @@ pub mod longhands { <%self:longhand name="column-count" experimental="True"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Clone, Copy, PartialEq)] pub enum SpecifiedValue { @@ -2243,7 +2290,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::Auto => dest.write_str("auto"), SpecifiedValue::Specified(count) => write!(dest, "{}", count), @@ -2276,10 +2323,9 @@ pub mod longhands { if input.try(|input| input.expect_ident_matching("auto")).is_ok() { Ok(SpecifiedValue::Auto) } else { - use std::u32; let count = try!(input.expect_integer()); // Zero is invalid - if count <= 0 || count > (u32::MAX as i64) { + if count <= 0 { return Err(()) } Ok(SpecifiedValue::Specified(count as u32)) @@ -2290,7 +2336,7 @@ pub mod longhands { <%self:longhand name="column-gap" experimental="True"> use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Clone, Copy, PartialEq)] pub enum SpecifiedValue { @@ -2299,7 +2345,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedValue::Normal => dest.write_str("normal"), SpecifiedValue::Specified(l) => l.to_css(dest), @@ -2345,10 +2391,10 @@ pub mod longhands { use values::CSSFloat; use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { self.0.to_css(dest) } } @@ -2385,10 +2431,11 @@ pub mod longhands { <%self:longhand name="box-shadow"> use cssparser::{self, ToCss}; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::{ToComputedValue, Context}; - pub type SpecifiedValue = Vec<SpecifiedBoxShadow>; + #[derive(Clone, PartialEq)] + pub struct SpecifiedValue(Vec<SpecifiedBoxShadow>); #[derive(Clone, PartialEq)] pub struct SpecifiedBoxShadow { @@ -2400,9 +2447,9 @@ pub mod longhands { pub inset: bool, } - impl ToCss for Vec<SpecifiedBoxShadow> { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { - let mut iter = self.iter(); + impl ToCss for SpecifiedValue { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + let mut iter = self.0.iter(); if let Some(shadow) = iter.next() { try!(shadow.to_css(dest)); } else { @@ -2418,7 +2465,7 @@ pub mod longhands { } impl ToCss for SpecifiedBoxShadow { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { if self.inset { try!(dest.write_str("inset ")); } @@ -2474,9 +2521,9 @@ pub mod longhands { pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { if input.try(|input| input.expect_ident_matching("none")).is_ok() { - Ok(Vec::new()) + Ok(SpecifiedValue(Vec::new())) } else { - input.parse_comma_separated(parse_one_box_shadow) + input.parse_comma_separated(parse_one_box_shadow).map(SpecifiedValue) } } @@ -2485,7 +2532,7 @@ pub mod longhands { #[inline] fn to_computed_value(&self, context: &Context) -> computed_value::T { - self.iter().map(|value| compute_one_box_shadow(value, context)).collect() + self.0.iter().map(|value| compute_one_box_shadow(value, context)).collect() } } @@ -2567,7 +2614,7 @@ pub mod longhands { <%self:longhand name="clip"> use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; // NB: `top` and `left` are 0 if `auto` per CSS 2.1 11.1.2. @@ -2595,10 +2642,11 @@ pub mod longhands { pub left: specified::Length, } - pub type SpecifiedValue = Option<SpecifiedClipRect>; + #[derive(Clone, Debug, PartialEq, Copy)] + pub struct SpecifiedValue(Option<SpecifiedClipRect>); impl ToCss for SpecifiedClipRect { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(dest.write_str("rect(")); try!(self.top.to_css(dest)); @@ -2625,9 +2673,9 @@ pub mod longhands { } } - impl ToCss for Option<SpecifiedClipRect> { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { - if let Some(ref rect) = *self { + impl ToCss for SpecifiedValue { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + if let Some(ref rect) = self.0 { rect.to_css(dest) } else { dest.write_str("auto") @@ -2645,7 +2693,7 @@ pub mod longhands { #[inline] fn to_computed_value(&self, context: &Context) -> computed_value::T { - self.map(|value| computed_value::ClipRect { + self.0.map(|value| computed_value::ClipRect { top: value.top.to_computed_value(context), right: value.right.map(|right| right.to_computed_value(context)), bottom: value.bottom.map(|bottom| bottom.to_computed_value(context)), @@ -2660,7 +2708,7 @@ pub mod longhands { use values::specified::Length; if input.try(|input| input.expect_ident_matching("auto")).is_ok() { - return Ok(None) + return Ok(SpecifiedValue(None)) } if !try!(input.expect_function()).eq_ignore_ascii_case("rect") { return Err(()) @@ -2675,12 +2723,12 @@ pub mod longhands { }) })); if sides.len() == 4 { - Ok(Some(SpecifiedClipRect { + Ok(SpecifiedValue(Some(SpecifiedClipRect { top: sides[0].unwrap_or(Length::Absolute(Au(0))), right: sides[1], bottom: sides[2], left: sides[3].unwrap_or(Length::Absolute(Au(0))), - })) + }))) } else { Err(()) } @@ -2690,7 +2738,6 @@ pub mod longhands { <%self:longhand name="text-shadow"> use cssparser::{self, ToCss}; use std::fmt; - use text_writer::{self, TextWriter}; use values::computed::{Context, ToComputedValue}; @@ -2736,7 +2783,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let mut iter = self.0.iter(); if let Some(shadow) = iter.next() { try!(shadow.to_css(dest)); @@ -2753,7 +2800,7 @@ pub mod longhands { } impl ToCss for SpecifiedTextShadow { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.offset_x.to_css(dest)); try!(dest.write_str(" ")); try!(self.offset_y.to_css(dest)); @@ -2859,7 +2906,7 @@ pub mod longhands { use values::specified::{Angle, Length}; use values::CSSFloat; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Clone, PartialEq)] pub struct SpecifiedValue(Vec<SpecifiedFilter>); @@ -2937,7 +2984,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let mut iter = self.0.iter(); if let Some(filter) = iter.next() { try!(filter.to_css(dest)); @@ -2954,7 +3001,7 @@ pub mod longhands { } impl ToCss for SpecifiedFilter { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { SpecifiedFilter::Blur(value) => { try!(dest.write_str("blur(")); @@ -3047,16 +3094,15 @@ pub mod longhands { use values::computed::{ToComputedValue, Context}; use cssparser::ToCss; - use std::f64; + use std::f32; use std::ops::Mul; - use text_writer::{self, TextWriter}; + use std::fmt; use util::geometry::Au; pub mod computed_value { use values::CSSFloat; use values::computed; - use std::num::Float; use std::ops::Mul; #[derive(Clone, Copy, Debug, PartialEq)] @@ -3148,8 +3194,8 @@ pub mod longhands { m31: specified::LengthAndPercentage, m32: specified::LengthAndPercentage, } - impl ToCss for Option<SpecifiedMatrix> { - fn to_css<W>(&self, _: &mut W) -> text_writer::Result where W: TextWriter { + impl ToCss for SpecifiedMatrix { + fn to_css<W>(&self, _: &mut W) -> fmt::Result where W: fmt::Write { // TODO(pcwalton) Ok(()) } @@ -3217,7 +3263,7 @@ pub mod longhands { } impl ToCss for SpecifiedOperation { - fn to_css<W>(&self, _: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, _: &mut W) -> fmt::Result where W: fmt::Write { // TODO(pcwalton) Ok(()) } @@ -3227,7 +3273,7 @@ pub mod longhands { pub struct SpecifiedValue(Vec<SpecifiedOperation>); impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let mut first = true; for operation in self.0.iter() { if !first { @@ -3267,8 +3313,8 @@ pub mod longhands { return Err(()) } let (tx, ty) = - (specified::Length::Absolute(Au::from_frac_px(values[4])), - specified::Length::Absolute(Au::from_frac_px(values[5]))); + (specified::Length::Absolute(Au::from_frac32_px(values[4])), + specified::Length::Absolute(Au::from_frac32_px(values[5]))); let (tx, ty) = (specified::LengthAndPercentage::from_length(tx), specified::LengthAndPercentage::from_length(ty)); @@ -3394,7 +3440,7 @@ pub mod longhands { result.scale(sx, sy) } SpecifiedOperation::Rotate(ref theta) => { - result.rotate(f64::consts::PI_2 - theta.radians()); + result.rotate(f32::consts::PI_2 - theta.radians()); } SpecifiedOperation::Skew(sx, sy) => { result.skew(sx, sy) @@ -3411,7 +3457,7 @@ pub mod longhands { use values::specified::LengthOrPercentage; use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; pub mod computed_value { use values::computed::LengthOrPercentage; @@ -3430,7 +3476,7 @@ pub mod longhands { } impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.horizontal.to_css(dest)); try!(dest.write_str(" ")); self.vertical.to_css(dest) @@ -3534,7 +3580,7 @@ pub mod longhands { pub mod computed_value { use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; #[derive(Copy, Clone, Debug, PartialEq)] pub enum T { @@ -3544,7 +3590,7 @@ pub mod longhands { } impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { T::Auto => dest.write_str("auto"), T::CrispEdges => dest.write_str("crisp-edges"), @@ -3596,7 +3642,7 @@ pub mod longhands { pub mod computed_value { use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; use values::computed::{Context, ToComputedValue}; pub use values::computed::Time as SingleComputedValue; @@ -3614,7 +3660,7 @@ pub mod longhands { } impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { if self.0.is_empty() { return dest.write_str("none") } @@ -3704,18 +3750,18 @@ pub mod longhands { pub mod computed_value { use cssparser::ToCss; use geom::point::Point2D; - use text_writer::{self, TextWriter}; + use std::fmt; pub use self::TransitionTimingFunction as SingleComputedValue; #[derive(Copy, Clone, Debug, PartialEq)] pub enum TransitionTimingFunction { - CubicBezier(Point2D<f64>, Point2D<f64>), + CubicBezier(Point2D<f32>, Point2D<f32>), Steps(u32, StartEnd), } impl ToCss for TransitionTimingFunction { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { TransitionTimingFunction::CubicBezier(p1, p2) => { try!(dest.write_str("cubic-bezier(")); @@ -3746,7 +3792,7 @@ pub mod longhands { } impl ToCss for StartEnd { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { StartEnd::Start => dest.write_str("start"), StartEnd::End => dest.write_str("end"), @@ -3758,7 +3804,7 @@ pub mod longhands { pub struct T(pub Vec<TransitionTimingFunction>); impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { if self.0.is_empty() { return dest.write_str("none") } @@ -3857,7 +3903,7 @@ pub mod longhands { pub mod computed_value { use cssparser::ToCss; - use text_writer::{self, TextWriter}; + use std::fmt; pub use self::TransitionProperty as SingleComputedValue; @@ -3958,7 +4004,7 @@ pub mod longhands { ]; impl ToCss for TransitionProperty { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match *self { TransitionProperty::All => dest.write_str("all"), TransitionProperty::BackgroundColor => dest.write_str("background-color"), @@ -4013,7 +4059,7 @@ pub mod longhands { pub struct T(pub Vec<SingleComputedValue>); impl ToCss for T { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { if self.0.is_empty() { return dest.write_str("none") } @@ -4500,7 +4546,7 @@ pub mod shorthands { font_weight: weight, font_size: size, line_height: line_height, - font_family: Some(family) + font_family: Some(font_family::SpecifiedValue(family)) }) </%self:shorthand> diff --git a/components/style/selector_matching.rs b/components/style/selector_matching.rs index 6511f8c5772..211ae3dbe56 100644 --- a/components/style/selector_matching.rs +++ b/components/style/selector_matching.rs @@ -8,9 +8,9 @@ use selectors::bloom::BloomFilter; use selectors::matching::{SelectorMap, Rule}; use selectors::matching::DeclarationBlock as GenericDeclarationBlock; use selectors::parser::PseudoElement; -use selectors::smallvec::VecLike; use selectors::tree::TNode; use util::resource_files::read_resource_file; +use util::smallvec::VecLike; use legacy::PresentationalHintSynthesis; use media_queries::Device; @@ -213,7 +213,7 @@ impl Stylist { // Step 4: Normal style attributes. style_attribute.map(|sa| { shareable = false; - applicable_declarations.vec_push( + applicable_declarations.push( GenericDeclarationBlock::from_declarations(sa.normal.clone())) }); @@ -226,7 +226,7 @@ impl Stylist { // Step 6: `!important` style attributes. style_attribute.map(|sa| { shareable = false; - applicable_declarations.vec_push( + applicable_declarations.push( GenericDeclarationBlock::from_declarations(sa.important.clone())) }); diff --git a/components/style/stylesheets.rs b/components/style/stylesheets.rs index b910d3fe62a..90f4a7510df 100644 --- a/components/style/stylesheets.rs +++ b/components/style/stylesheets.rs @@ -18,7 +18,7 @@ use parser::{ParserContext, log_css_error}; use properties::{PropertyDeclarationBlock, parse_property_declaration_list}; use media_queries::{Device, MediaQueryList, parse_media_query_list}; use font_face::{FontFaceRule, parse_font_face_block}; -use util::smallvec::{SmallVec, SmallVec2}; +use util::smallvec::SmallVec2; /// Each style rule has an origin, which determines where it enters the cascade. @@ -178,7 +178,7 @@ impl<'a> Iterator for Rules<'a> { fn next(&mut self) -> Option<&'a CSSRule> { while !self.stack.is_empty() { let top = self.stack.len() - 1; - while let Some(rule) = self.stack.get_mut(top).next() { + while let Some(rule) = self.stack[top].next() { // handle conditional group rules match rule { &CSSRule::Media(ref rule) => { diff --git a/components/style/values.rs b/components/style/values.rs index 12614a0bddc..185bfd7280a 100644 --- a/components/style/values.rs +++ b/components/style/values.rs @@ -12,7 +12,7 @@ macro_rules! define_css_keyword_enum { }; ($name: ident: $( $css: expr => $variant: ident ),+) => { #[allow(non_camel_case_types)] - #[derive(Clone, Eq, PartialEq, FromPrimitive, Copy, Hash, RustcEncodable)] + #[derive(Clone, Eq, PartialEq, Copy, Hash, RustcEncodable, Debug)] pub enum $name { $( $variant ),+ } @@ -26,17 +26,9 @@ macro_rules! define_css_keyword_enum { } } - impl ::std::fmt::Debug for $name { - #[inline] - fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - use cssparser::ToCss; - self.fmt_to_css(f) - } - } - impl ::cssparser::ToCss for $name { - fn to_css<W>(&self, dest: &mut W) -> ::text_writer::Result - where W: ::text_writer::TextWriter { + fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result + where W: ::std::fmt::Write { match self { $( &$name::$variant => dest.write_str($css) ),+ } @@ -51,7 +43,7 @@ macro_rules! define_numbered_css_keyword_enum { }; ($name: ident: $( $css: expr => $variant: ident = $value: expr ),+) => { #[allow(non_camel_case_types)] - #[derive(Clone, Eq, PartialEq, PartialOrd, Ord, FromPrimitive, Copy, RustcEncodable)] + #[derive(Clone, Eq, PartialEq, PartialOrd, Ord, Copy, RustcEncodable, Debug)] pub enum $name { $( $variant = $value ),+ } @@ -65,17 +57,9 @@ macro_rules! define_numbered_css_keyword_enum { } } - impl ::std::fmt::Debug for $name { - #[inline] - fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - use cssparser::ToCss; - self.fmt_to_css(f) - } - } - impl ::cssparser::ToCss for $name { - fn to_css<W>(&self, dest: &mut W) -> ::text_writer::Result - where W: ::text_writer::TextWriter { + fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result + where W: ::std::fmt::Write { match self { $( &$name::$variant => dest.write_str($css) ),+ } @@ -85,26 +69,24 @@ macro_rules! define_numbered_css_keyword_enum { } -pub type CSSFloat = f64; +pub type CSSFloat = f32; pub mod specified { use std::ascii::AsciiExt; use std::cmp; - use std::f64::consts::PI; + use std::f32::consts::PI; use std::fmt; - use std::fmt::{Formatter, Debug}; - use std::num::{NumCast, ToPrimitive}; + use std::fmt::Write; use std::ops::{Add, Mul}; use url::Url; use cssparser::{self, Token, Parser, ToCss, CssStringWriter}; use geom::size::Size2D; use parser::ParserContext; - use text_writer::{self, TextWriter}; use util::geometry::Au; use super::CSSFloat; - #[derive(Clone, PartialEq)] + #[derive(Clone, PartialEq, Debug)] pub struct CSSColor { pub parsed: cssparser::Color, pub authored: Option<String>, @@ -124,12 +106,8 @@ pub mod specified { } } - impl fmt::Debug for CSSColor { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for CSSColor { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self.authored { Some(ref s) => dest.write_str(s), None => self.parsed.to_css(dest), @@ -137,17 +115,14 @@ pub mod specified { } } - #[derive(Clone, PartialEq)] + #[derive(Clone, PartialEq, Debug)] pub struct CSSRGBA { pub parsed: cssparser::RGBA, pub authored: Option<String>, } - impl fmt::Debug for CSSRGBA { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } impl ToCss for CSSRGBA { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self.authored { Some(ref s) => dest.write_str(s), None => self.parsed.to_css(dest), @@ -155,19 +130,15 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum FontRelativeLength { Em(CSSFloat), Ex(CSSFloat), Rem(CSSFloat) } - impl fmt::Debug for FontRelativeLength { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for FontRelativeLength { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &FontRelativeLength::Em(length) => write!(dest, "{}em", length), &FontRelativeLength::Ex(length) => write!(dest, "{}ex", length), @@ -193,7 +164,7 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum ViewportPercentageLength { Vw(CSSFloat), Vh(CSSFloat), @@ -201,12 +172,8 @@ pub mod specified { Vmax(CSSFloat) } - impl fmt::Debug for ViewportPercentageLength { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for ViewportPercentageLength { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &ViewportPercentageLength::Vw(length) => write!(dest, "{}vw", length), &ViewportPercentageLength::Vh(length) => write!(dest, "{}vh", length), @@ -220,7 +187,7 @@ pub mod specified { pub fn to_computed_value(&self, viewport_size: Size2D<Au>) -> Au { macro_rules! to_unit { ($viewport_dimension:expr) => { - $viewport_dimension.to_f64().unwrap() / 100.0 + $viewport_dimension.to_frac32_px() / 100.0 } } @@ -234,11 +201,11 @@ pub mod specified { &ViewportPercentageLength::Vmax(length) => length * to_unit!(cmp::max(viewport_size.width, viewport_size.height)), }; - NumCast::from(value).unwrap() + Au::from_frac32_px(value) } } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub struct CharacterWidth(pub i32); impl CharacterWidth { @@ -253,7 +220,7 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum Length { Absolute(Au), // application units FontRelative(FontRelativeLength), @@ -266,14 +233,10 @@ pub mod specified { ServoCharacterWidth(CharacterWidth), } - impl fmt::Debug for Length { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for Length { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { - &Length::Absolute(length) => write!(dest, "{}px", length.to_subpx()), + &Length::Absolute(length) => write!(dest, "{}px", length.to_frac32_px()), &Length::FontRelative(length) => length.to_css(dest), &Length::ViewportPercentage(length) => length.to_css(dest), &Length::ServoCharacterWidth(_) @@ -288,7 +251,7 @@ pub mod specified { #[inline] fn mul(self, scalar: CSSFloat) -> Length { match self { - Length::Absolute(Au(v)) => Length::Absolute(Au(((v as f64) * scalar) as i32)), + Length::Absolute(Au(v)) => Length::Absolute(Au(((v as f32) * scalar) as i32)), Length::FontRelative(v) => Length::FontRelative(v * scalar), Length::ViewportPercentage(v) => Length::ViewportPercentage(v * scalar), Length::ServoCharacterWidth(_) => panic!("Can't multiply ServoCharacterWidth!"), @@ -374,18 +337,14 @@ pub mod specified { } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum LengthOrPercentage { Length(Length), Percentage(CSSFloat), // [0 .. 100%] maps to [0.0 .. 1.0] } - impl fmt::Debug for LengthOrPercentage { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for LengthOrPercentage { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &LengthOrPercentage::Length(length) => length.to_css(dest), &LengthOrPercentage::Percentage(percentage) @@ -421,19 +380,15 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum LengthOrPercentageOrAuto { Length(Length), Percentage(CSSFloat), // [0 .. 100%] maps to [0.0 .. 1.0] Auto, } - impl fmt::Debug for LengthOrPercentageOrAuto { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for LengthOrPercentageOrAuto { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &LengthOrPercentageOrAuto::Length(length) => length.to_css(dest), &LengthOrPercentageOrAuto::Percentage(percentage) @@ -472,19 +427,15 @@ pub mod specified { } } - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum LengthOrPercentageOrNone { Length(Length), Percentage(CSSFloat), // [0 .. 100%] maps to [0.0 .. 1.0] None, } - impl fmt::Debug for LengthOrPercentageOrNone { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for LengthOrPercentageOrNone { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &LengthOrPercentageOrNone::Length(length) => length.to_css(dest), &LengthOrPercentageOrNone::Percentage(percentage) @@ -580,7 +531,7 @@ pub mod specified { fn add(self, other: LengthAndPercentage) -> LengthAndPercentage { let mut new_lengths = self.lengths.clone(); - new_lengths.push_all(other.lengths.as_slice()); + new_lengths.push_all(&other.lengths); LengthAndPercentage { lengths: new_lengths, percentage: self.percentage + other.percentage, @@ -650,22 +601,18 @@ pub mod specified { } } - #[derive(Clone, PartialEq, PartialOrd, Copy)] + #[derive(Clone, PartialEq, PartialOrd, Copy, Debug)] pub struct Angle(pub CSSFloat); - impl fmt::Debug for Angle { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for Angle { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { let Angle(value) = *self; write!(dest, "{}rad", value) } } impl Angle { - pub fn radians(self) -> f64 { + pub fn radians(self) -> f32 { let Angle(radians) = self; radians } @@ -695,18 +642,14 @@ pub mod specified { } /// Specified values for an image according to CSS-IMAGES. - #[derive(Clone, PartialEq)] + #[derive(Clone, PartialEq, Debug)] pub enum Image { Url(Url), LinearGradient(LinearGradient), } - impl fmt::Debug for Image { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for Image { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &Image::Url(ref url) => { try!(dest.write_str("url(\"")); @@ -740,7 +683,7 @@ pub mod specified { } /// Specified values for a CSS linear gradient. - #[derive(Clone, PartialEq)] + #[derive(Clone, PartialEq, Debug)] pub struct LinearGradient { /// The angle or corner of the gradient. pub angle_or_corner: AngleOrCorner, @@ -749,42 +692,34 @@ pub mod specified { pub stops: Vec<ColorStop>, } - impl fmt::Debug for LinearGradient { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for LinearGradient { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(dest.write_str("linear-gradient(")); try!(self.angle_or_corner.to_css(dest)); for stop in self.stops.iter() { try!(dest.write_str(", ")); try!(stop.to_css(dest)); } - try!(dest.write_char(')')); + try!(dest.write_str(")")); Ok(()) } } /// Specified values for an angle or a corner in a linear gradient. - #[derive(Clone, PartialEq, Copy)] + #[derive(Clone, PartialEq, Copy, Debug)] pub enum AngleOrCorner { Angle(Angle), Corner(HorizontalDirection, VerticalDirection), } - impl fmt::Debug for AngleOrCorner { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for AngleOrCorner { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { match self { &AngleOrCorner::Angle(angle) => angle.to_css(dest), &AngleOrCorner::Corner(horizontal, vertical) => { try!(dest.write_str("to ")); try!(horizontal.to_css(dest)); - try!(dest.write_char(' ')); + try!(dest.write_str(" ")); try!(vertical.to_css(dest)); Ok(()) } @@ -793,7 +728,7 @@ pub mod specified { } /// Specified values for one color stop in a linear gradient. - #[derive(Clone, PartialEq)] + #[derive(Clone, PartialEq, Debug)] pub struct ColorStop { /// The color of this stop. pub color: CSSColor, @@ -803,15 +738,11 @@ pub mod specified { pub position: Option<LengthOrPercentage>, } - impl fmt::Debug for ColorStop { - #[inline] fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.fmt_to_css(f) } - } - impl ToCss for ColorStop { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.color.to_css(dest)); if let Some(position) = self.position { - try!(dest.write_char(' ')); + try!(dest.write_str(" ")); try!(position.to_css(dest)); } Ok(()) @@ -909,7 +840,7 @@ pub mod specified { impl Time { /// Returns the time in fractional seconds. - pub fn seconds(self) -> f64 { + pub fn seconds(self) -> f32 { let Time(seconds) = self; seconds } @@ -945,8 +876,8 @@ pub mod specified { } impl ToCss for Time { - fn to_css<W>(&self, dest: &mut W) -> text_writer::Result where W: TextWriter { - dest.write_str(format!("{}ms", self.0).as_slice()) + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + write!(dest, "{}ms", self.0) } } } @@ -959,7 +890,6 @@ pub mod computed { use geom::size::Size2D; use properties::longhands; use std::fmt; - use std::marker::MarkerTrait; use std::ops::{Add, Mul}; use url::Url; use util::geometry::Au; @@ -995,7 +925,7 @@ pub mod computed { fn to_computed_value(&self, _context: &Context) -> Self::ComputedValue; } - pub trait ComputedValueAsSpecified: MarkerTrait {} + pub trait ComputedValueAsSpecified {} impl<T> ToComputedValue for T where T: ComputedValueAsSpecified + Clone { type ComputedValue = T; @@ -1184,7 +1114,7 @@ pub mod computed { fn mul(self, scalar: CSSFloat) -> LengthAndPercentage { LengthAndPercentage { - length: Au::from_frac_px(self.length.to_subpx() * scalar), + length: Au::from_frac32_px(self.length.to_frac32_px() * scalar), percentage: self.percentage * scalar, } } diff --git a/components/util/Cargo.toml b/components/util/Cargo.toml index 706ca02e9b6..d802cb92061 100644 --- a/components/util/Cargo.toml +++ b/components/util/Cargo.toml @@ -18,9 +18,6 @@ doctest = false [dependencies.plugins] path = "../plugins" -[dependencies.cssparser] -git = "https://github.com/servo/rust-cssparser" - [dependencies.selectors] git = "https://github.com/servo/rust-selectors" @@ -47,5 +44,9 @@ bitflags = "*" libc = "*" rand = "*" rustc-serialize = "0.3" -text_writer = "0.1.1" time = "0.1.12" +smallvec = "0.1" +num_cpus = "0.2.2" +fnv = "1.0" +cssparser = "0.3.1" +num = "0.1.24" diff --git a/components/util/bezier.rs b/components/util/bezier.rs index 768293b3421..28251745cbc 100644 --- a/components/util/bezier.rs +++ b/components/util/bezier.rs @@ -7,22 +7,21 @@ //! This is based on `WebCore/platform/graphics/UnitBezier.h` in WebKit. use geom::point::Point2D; -use std::num::Float; const NEWTON_METHOD_ITERATIONS: u8 = 8; pub struct Bezier { - ax: f64, - bx: f64, - cx: f64, - ay: f64, - by: f64, - cy: f64, + ax: f32, + bx: f32, + cx: f32, + ay: f32, + by: f32, + cy: f32, } impl Bezier { #[inline] - pub fn new(p1: Point2D<f64>, p2: Point2D<f64>) -> Bezier { + pub fn new(p1: Point2D<f32>, p2: Point2D<f32>) -> Bezier { let cx = 3.0 * p1.x; let bx = 3.0 * (p2.x - p1.x) - cx; @@ -40,23 +39,23 @@ impl Bezier { } #[inline] - fn sample_curve_x(&self, t: f64) -> f64 { + fn sample_curve_x(&self, t: f32) -> f32 { // ax * t^3 + bx * t^2 + cx * t ((self.ax * t + self.bx) * t + self.cx) * t } #[inline] - fn sample_curve_y(&self, t: f64) -> f64 { + fn sample_curve_y(&self, t: f32) -> f32 { ((self.ay * t + self.by) * t + self.cy) * t } #[inline] - fn sample_curve_derivative_x(&self, t: f64) -> f64 { + fn sample_curve_derivative_x(&self, t: f32) -> f32 { (3.0 * self.ax * t + 2.0 * self.bx) * t + self.cx } #[inline] - fn solve_curve_x(&self, x: f64, epsilon: f64) -> f64 { + fn solve_curve_x(&self, x: f32, epsilon: f32) -> f32 { // Fast path: Use Newton's method. let mut t = x; for _ in 0..NEWTON_METHOD_ITERATIONS { @@ -98,7 +97,7 @@ impl Bezier { } #[inline] - pub fn solve(&self, x: f64, epsilon: f64) -> f64 { + pub fn solve(&self, x: f32, epsilon: f32) -> f32 { self.sample_curve_y(self.solve_curve_x(x, epsilon)) } } @@ -107,9 +106,9 @@ trait ApproxEq { fn approx_eq(self, value: Self, epsilon: Self) -> bool; } -impl ApproxEq for f64 { +impl ApproxEq for f32 { #[inline] - fn approx_eq(self, value: f64, epsilon: f64) -> bool { + fn approx_eq(self, value: f32, epsilon: f32) -> bool { (self - value).abs() < epsilon } } diff --git a/components/util/cursor.rs b/components/util/cursor.rs index 4c6b61b38fe..622845deaa7 100644 --- a/components/util/cursor.rs +++ b/components/util/cursor.rs @@ -6,11 +6,10 @@ use cssparser::ToCss; use std::ascii::AsciiExt; -use text_writer::TextWriter; macro_rules! define_cursor { ($( $css: expr => $variant: ident = $value: expr, )+) => { - #[derive(Clone, Copy, PartialEq, Eq, FromPrimitive, Debug)] + #[derive(Clone, Copy, PartialEq, Eq, Debug)] #[repr(u8)] pub enum Cursor { $( $variant = $value ),+ @@ -26,7 +25,7 @@ macro_rules! define_cursor { } impl ToCss for Cursor { - fn to_css<W>(&self, dest: &mut W) -> ::text_writer::Result where W: TextWriter { + fn to_css<W>(&self, dest: &mut W) -> ::std::fmt::Result where W: ::std::fmt::Write { match self { $( &Cursor::$variant => dest.write_str($css) ),+ } diff --git a/components/util/deque/mod.rs b/components/util/deque/mod.rs index 1eb3f744c95..fc79d9f76ee 100644 --- a/components/util/deque/mod.rs +++ b/components/util/deque/mod.rs @@ -170,7 +170,9 @@ impl<T: Send + 'static> BufferPool<T> { } } } +} +impl<T> BufferPool<T> { fn free(&self, buf: Box<Buffer<T>>) { let mut pool = self.pool.lock().unwrap(); match pool.iter().position(|v| v.size() > buf.size()) { @@ -331,8 +333,7 @@ impl<T: Send + 'static> Deque<T> { } -#[unsafe_destructor] -impl<T: Send + 'static> Drop for Deque<T> { +impl<T> Drop for Deque<T> { fn drop(&mut self) { let t = self.top.load(SeqCst); let b = self.bottom.load(SeqCst); @@ -351,7 +352,7 @@ fn buffer_alloc_size<T>(log_size: usize) -> usize { (1 << log_size) * size_of::<T>() } -impl<T: Send> Buffer<T> { +impl<T> Buffer<T> { unsafe fn new(log_size: usize) -> Buffer<T> { let size = buffer_alloc_size::<T>(log_size); let buffer = allocate(size, min_align_of::<T>()); @@ -399,8 +400,7 @@ impl<T: Send> Buffer<T> { } } -#[unsafe_destructor] -impl<T: Send> Drop for Buffer<T> { +impl<T> Drop for Buffer<T> { fn drop(&mut self) { // It is assumed that all buffers are empty on drop. let size = buffer_alloc_size::<T>(self.log_size); diff --git a/components/util/geometry.rs b/components/util/geometry.rs index c32a0264665..5d7c69d0010 100644 --- a/components/util/geometry.rs +++ b/components/util/geometry.rs @@ -10,7 +10,6 @@ use geom::num::Zero; use std::default::Default; use std::i32; -use std::num::{Float, NumCast, ToPrimitive}; use std::fmt; use std::ops::{Add, Sub, Neg, Mul, Div, Rem}; @@ -116,13 +115,13 @@ pub const MAX_AU: Au = Au(i32::MAX); impl Encodable for Au { fn encode<S: Encoder>(&self, e: &mut S) -> Result<(), S::Error> { - e.emit_f64(to_frac_px(*self)) + e.emit_f64(self.to_subpx()) } } impl fmt::Debug for Au { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{}px", to_frac_px(*self)) + write!(f, "{}px", self.to_subpx()) }} impl Add for Au { @@ -188,40 +187,6 @@ impl Neg for Au { } } - -impl NumCast for Au { - #[inline] - fn from<T:ToPrimitive>(n: T) -> Option<Au> { - Some(Au(n.to_i32().unwrap())) - } -} - -impl ToPrimitive for Au { - #[inline] - fn to_i64(&self) -> Option<i64> { - let Au(s) = *self; - Some(s as i64) - } - - #[inline] - fn to_u64(&self) -> Option<u64> { - let Au(s) = *self; - Some(s as u64) - } - - #[inline] - fn to_f32(&self) -> Option<f32> { - let Au(s) = *self; - s.to_f32() - } - - #[inline] - fn to_f64(&self) -> Option<f64> { - let Au(s) = *self; - s.to_f64() - } -} - impl Au { /// FIXME(pcwalton): Workaround for lack of cross crate inlining of newtype structs! #[inline] @@ -230,19 +195,19 @@ impl Au { } #[inline] - pub fn scale_by(self, factor: f64) -> Au { + pub fn scale_by(self, factor: f32) -> Au { let Au(s) = self; - Au(((s as f64) * factor) as i32) + Au(((s as f32) * factor) as i32) } #[inline] pub fn from_px(px: isize) -> Au { - NumCast::from(px * 60).unwrap() + Au((px * 60) as i32) } #[inline] pub fn from_page_px(px: Length<PagePx, f32>) -> Au { - NumCast::from(px.get() * 60f32).unwrap() + Au((px.get() * 60f32) as i32) } /// Rounds this app unit down to the previous (left or top) pixel and returns it. @@ -297,7 +262,7 @@ impl Au { #[inline] pub fn from_frac_px(px: f64) -> Au { - Au((px * 60f64) as i32) + Au((px * 60.) as i32) } #[inline] @@ -317,20 +282,20 @@ impl Au { // assumes 72 points per inch, and 96 px per inch pub fn pt_to_px(pt: f64) -> f64 { - pt / 72f64 * 96f64 + pt / 72. * 96. } // assumes 72 points per inch, and 96 px per inch pub fn px_to_pt(px: f64) -> f64 { - px / 96f64 * 72f64 + px / 96. * 72. } pub fn from_frac_px(px: f64) -> Au { - Au((px * 60f64) as i32) + Au((px * 60.) as i32) } pub fn from_px(px: isize) -> Au { - NumCast::from(px * 60).unwrap() + Au::from_px(px) } pub fn to_px(au: Au) -> isize { @@ -338,20 +303,20 @@ pub fn to_px(au: Au) -> isize { (a / 60) as isize } -pub fn to_frac_px(au: Au) -> f64 { +pub fn to_frac_px(au: Au) -> f32 { let Au(a) = au; - (a as f64) / 60f64 + (a as f32) / 60. } // assumes 72 points per inch, and 96 px per inch -pub fn from_pt(pt: f64) -> Au { - from_px((pt / 72f64 * 96f64) as isize) +pub fn from_pt(pt: f32) -> Au { + from_px((pt / 72. * 96.) as isize) } // assumes 72 points per inch, and 96 px per inch -pub fn to_pt(au: Au) -> f64 { +pub fn to_pt(au: Au) -> f32 { let Au(a) = au; - (a as f64) / 60f64 * 72f64 / 96f64 + (a as f32) / 60. * 72. / 96. } /// Returns true if the rect contains the given point. Points on the top or left sides of the rect diff --git a/components/util/lib.rs b/components/util/lib.rs index 28efc0e58e1..021499c3adc 100644 --- a/components/util/lib.rs +++ b/components/util/lib.rs @@ -7,16 +7,14 @@ #![feature(collections)] #![feature(core)] #![feature(exit_status)] -#![feature(hash)] -#![feature(io)] #![feature(optin_builtin_traits)] -#![feature(path)] #![cfg_attr(not(target_os = "android"), feature(path_ext))] #![feature(plugin)] #![feature(rustc_private)] +#![feature(step_by)] +#![feature(step_trait)] #![feature(std_misc)] -#![feature(unicode)] -#![feature(unsafe_destructor)] +#![feature(zero_one)] #![plugin(string_cache_plugin)] @@ -25,29 +23,31 @@ extern crate azure; extern crate alloc; #[macro_use] extern crate bitflags; -extern crate cssparser; +#[macro_use] extern crate cssparser; +extern crate fnv as fnv_; extern crate geom; extern crate getopts; extern crate layers; extern crate libc; -#[no_link] #[macro_use] extern crate cssparser; +extern crate num as num_lib; +extern crate num_cpus; extern crate rand; -extern crate "rustc-serialize" as rustc_serialize; -extern crate text_writer; +extern crate rustc_serialize; extern crate selectors; +extern crate smallvec as smallvec_; extern crate string_cache; -pub use selectors::smallvec; - use std::sync::Arc; +pub use fnv_ as fnv; +pub use smallvec_ as smallvec; + pub mod bezier; pub mod cache; pub mod cursor; pub mod debug_utils; pub mod deque; pub mod linked_list; -pub mod fnv; pub mod geometry; pub mod logical_geometry; pub mod mem; diff --git a/components/util/mem.rs b/components/util/mem.rs index ad7cf6108a2..cd1b9834e48 100644 --- a/components/util/mem.rs +++ b/components/util/mem.rs @@ -154,7 +154,6 @@ unsafe fn linked_list2_check() { // Currently, types that implement the Drop type are larger than those that don't. Because // LinkedList implements Drop, LinkedList2 must also so that linked_list2_check() doesn't fail. -#[unsafe_destructor] impl<T> Drop for LinkedList2<T> { fn drop(&mut self) {} } diff --git a/components/util/opts.rs b/components/util/opts.rs index aaca57729cc..70ca9d4b92b 100644 --- a/components/util/opts.rs +++ b/components/util/opts.rs @@ -11,13 +11,13 @@ use geom::scale_factor::ScaleFactor; use geom::size::TypedSize2D; use layers::geometry::DevicePixel; use getopts; +use num_cpus; use std::collections::HashSet; use std::cmp; use std::env; use std::io::{self, Write}; use std::mem; use std::ptr; -use std::rt; /// Global flags for Servo, currently set on the command line. #[derive(Clone)] @@ -307,7 +307,7 @@ pub fn from_cmdline_args(args: &[String]) -> bool { let mut paint_threads: usize = match opt_match.opt_str("t") { Some(paint_threads_str) => paint_threads_str.parse().unwrap(), - None => cmp::max(rt::default_sched_threads() * 3 / 4, 1), + None => cmp::max(num_cpus::get() * 3 / 4, 1), }; // If only the flag is present, default to a 5 second period for both profilers. @@ -322,7 +322,7 @@ pub fn from_cmdline_args(args: &[String]) -> bool { let mut layout_threads: usize = match opt_match.opt_str("y") { Some(layout_threads_str) => layout_threads_str.parse().unwrap(), - None => cmp::max(rt::default_sched_threads() * 3 / 4, 1), + None => cmp::max(num_cpus::get() * 3 / 4, 1), }; let nonincremental_layout = opt_match.opt_present("i"); diff --git a/components/util/range.rs b/components/util/range.rs index e22fd478320..2c66c24dcd1 100644 --- a/components/util/range.rs +++ b/components/util/range.rs @@ -2,12 +2,38 @@ * 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::cmp::{max, min}; +use num_lib; +use std::cmp::{self, max, min}; use std::fmt; +use std::iter; use std::marker::PhantomData; -use std::num::{self, Int}; +use std::num; use std::ops; +pub trait Int: + Copy + + ops::Add<Self, Output=Self> + + ops::Sub<Self, Output=Self> + + cmp::Ord +{ + fn zero() -> Self; + fn one() -> Self; + fn max_value() -> Self; + fn from_usize(n: usize) -> Option<Self>; +} +impl Int for isize { + fn zero() -> isize { 0 } + fn one() -> isize { 1 } + fn max_value() -> isize { ::std::isize::MAX } + fn from_usize(n: usize) -> Option<isize> { num_lib::NumCast::from(n) } +} +impl Int for usize { + fn zero() -> usize { 0 } + fn one() -> usize { 1 } + fn max_value() -> usize { ::std::usize::MAX } + fn from_usize(n: usize) -> Option<usize> { Some(n) } +} + /// An index type to be used by a `Range` pub trait RangeIndex: Int + fmt::Debug { type Index; @@ -61,32 +87,14 @@ macro_rules! int_range_index { } } - impl ::std::num::Int for $Self_ { - fn zero() -> $Self_ { $Self_(0) } - fn one() -> $Self_ { $Self_(1) } - fn min_value() -> $Self_ { $Self_(::std::num::Int::min_value()) } - fn max_value() -> $Self_ { $Self_(::std::num::Int::max_value()) } - fn count_ones(self) -> u32 { self.get().count_ones() } - fn leading_zeros(self) -> u32 { self.get().leading_zeros() } - fn trailing_zeros(self) -> u32 { self.get().trailing_zeros() } - fn rotate_left(self, n: u32) -> $Self_ { $Self_(self.get().rotate_left(n)) } - fn rotate_right(self, n: u32) -> $Self_ { $Self_(self.get().rotate_right(n)) } - fn swap_bytes(self) -> $Self_ { $Self_(self.get().swap_bytes()) } - fn checked_add(self, other: $Self_) -> Option<$Self_> { - self.get().checked_add(other.get()).map($Self_) - } - fn checked_sub(self, other: $Self_) -> Option<$Self_> { - self.get().checked_sub(other.get()).map($Self_) - } - fn checked_mul(self, other: $Self_) -> Option<$Self_> { - self.get().checked_mul(other.get()).map($Self_) - } - fn checked_div(self, other: $Self_) -> Option<$Self_> { - self.get().checked_div(other.get()).map($Self_) - } + impl $crate::range::Int for $Self_ { + fn zero() -> $Self_ { $Self_($crate::range::Int::zero()) } + fn one() -> $Self_ { $Self_($crate::range::Int::one()) } + fn max_value() -> $Self_ { $Self_($crate::range::Int::max_value()) } + fn from_usize(n: usize) -> Option<$Self_> { $crate::range::Int::from_usize(n).map($Self_) } } - impl Add<$Self_> for $Self_ { + impl ::std::ops::Add<$Self_> for $Self_ { type Output = $Self_; #[inline] @@ -95,7 +103,7 @@ macro_rules! int_range_index { } } - impl Sub<$Self_> for $Self_ { + impl ::std::ops::Sub<$Self_> for $Self_ { type Output = $Self_; #[inline] @@ -104,16 +112,7 @@ macro_rules! int_range_index { } } - impl Mul<$Self_> for $Self_ { - type Output = $Self_; - - #[inline] - fn mul(self, other: $Self_) -> $Self_ { - $Self_(self.get() * other.get()) - } - } - - impl Neg for $Self_ { + impl ::std::ops::Neg for $Self_ { type Output = $Self_; #[inline] @@ -121,105 +120,6 @@ macro_rules! int_range_index { $Self_(-self.get()) } } - - impl ToPrimitive for $Self_ { - fn to_i64(&self) -> Option<i64> { - Some(self.get() as i64) - } - - fn to_u64(&self) -> Option<u64> { - Some(self.get() as u64) - } - } - - impl ::std::num::NumCast for $Self_ { - fn from<T: ToPrimitive>(n: T) -> Option<$Self_> { - n.to_isize().map($Self_) - } - } - - impl Div<$Self_> for $Self_ { - type Output = $Self_; - fn div(self, other: $Self_) -> $Self_ { - $Self_(self.get() / other.get()) - } - } - - impl Rem<$Self_> for $Self_ { - type Output = $Self_; - fn rem(self, other: $Self_) -> $Self_ { - $Self_(self.get() % other.get()) - } - } - - impl Not for $Self_ { - type Output = $Self_; - fn not(self) -> $Self_ { - $Self_(!self.get()) - } - } - - impl BitAnd<$Self_> for $Self_ { - type Output = $Self_; - fn bitand(self, other: $Self_) -> $Self_ { - $Self_(self.get() & other.get()) - } - } - - impl BitOr<$Self_> for $Self_ { - type Output = $Self_; - fn bitor(self, other: $Self_) -> $Self_ { - $Self_(self.get() | other.get()) - } - } - - impl BitXor<$Self_> for $Self_ { - type Output = $Self_; - fn bitxor(self, other: $Self_) -> $Self_ { - $Self_(self.get() ^ other.get()) - } - } - - impl Shl<usize> for $Self_ { - type Output = $Self_; - fn shl(self, n: usize) -> $Self_ { - $Self_(self.get() << n) - } - } - - impl Shr<usize> for $Self_ { - type Output = $Self_; - fn shr(self, n: usize) -> $Self_ { - $Self_(self.get() >> n) - } - } - - impl ::std::num::wrapping::WrappingOps for $Self_ { - fn wrapping_add(self, rhs: $Self_) -> $Self_ { - $Self_(self.get().wrapping_add(rhs.get())) - } - fn wrapping_sub(self, rhs: $Self_) -> $Self_ { - $Self_(self.get().wrapping_sub(rhs.get())) - } - fn wrapping_mul(self, rhs: $Self_) -> $Self_ { - $Self_(self.get().wrapping_mul(rhs.get())) - } - } - - impl ::std::num::wrapping::OverflowingOps for $Self_ { - fn overflowing_add(self, rhs: $Self_) -> ($Self_, bool) { - let (x, b) = self.get().overflowing_add(rhs.get()); - ($Self_(x), b) - } - fn overflowing_sub(self, rhs: $Self_) -> ($Self_, bool) { - let (x, b) = self.get().overflowing_sub(rhs.get()); - ($Self_(x), b) - } - fn overflowing_mul(self, rhs: $Self_) -> ($Self_, bool) { - let (x, b) = self.get().overflowing_mul(rhs.get()); - ($Self_(x), b) - } - } ) } @@ -246,12 +146,13 @@ pub fn each_index<T: Int, I: RangeIndex<Index=T>>(start: I, stop: I) -> EachInde EachIndex { it: start.get()..stop.get(), phantom: PhantomData } } -impl<T: Int, I: RangeIndex<Index=T>> Iterator for EachIndex<T, I> { +impl<T: Int, I: RangeIndex<Index=T>> Iterator for EachIndex<T, I> +where T: Int + num::One + iter::Step, for<'a> &'a T: ops::Add<&'a T, Output = T> { type Item = I; #[inline] fn next(&mut self) -> Option<I> { - self.it.next().map(|i| RangeIndex::new(i)) + self.it.next().map(RangeIndex::new) } #[inline] @@ -407,7 +308,7 @@ impl<T: Int, I: RangeIndex<Index=T>> Range<I> { #[inline] pub fn is_valid_for_string(&self, s: &str) -> bool { let s_len = s.len(); - match num::cast::<usize, T>(s_len) { + match Int::from_usize(s_len) { Some(len) => { let len = RangeIndex::new(len); self.begin() < len diff --git a/components/util/resource_files.rs b/components/util/resource_files.rs index f614673946f..7c61a48f0ba 100644 --- a/components/util/resource_files.rs +++ b/components/util/resource_files.rs @@ -8,7 +8,7 @@ use std::path::PathBuf; #[cfg(target_os = "android")] pub fn resources_dir_path() -> PathBuf { - PathBuf::new("/sdcard/servo/") + PathBuf::from("/sdcard/servo/") } #[cfg(not(target_os = "android"))] @@ -18,7 +18,7 @@ pub fn resources_dir_path() -> PathBuf { use std::fs::PathExt; match opts::get().resources_path { - Some(ref path) => PathBuf::new(path), + Some(ref path) => PathBuf::from(path), None => { // FIXME: Find a way to not rely on the executable being // under `<servo source>/components/servo/target` diff --git a/components/util/str.rs b/components/util/str.rs index 7c36aca7c18..afa4b85c24c 100644 --- a/components/util/str.rs +++ b/components/util/str.rs @@ -7,11 +7,11 @@ use geometry::Au; use cssparser::{self, RGBA, Color}; use libc::c_char; +use num_lib::ToPrimitive; use std::ascii::AsciiExt; use std::borrow::ToOwned; use std::ffi::CStr; use std::iter::Filter; -use std::num::{Int, ToPrimitive}; use std::ops::Deref; use std::str::{from_utf8, FromStr, Split}; @@ -130,7 +130,7 @@ pub fn parse_unsigned_integer<T: Iterator<Item=char>>(input: T) -> Option<u32> { #[derive(Copy, Clone)] pub enum LengthOrPercentageOrAuto { Auto, - Percentage(f64), + Percentage(f32), Length(Au), } @@ -171,9 +171,9 @@ pub fn parse_length(mut value: &str) -> LengthOrPercentageOrAuto { value = &value[..end_index]; if found_percent { - let result: Result<f64, _> = FromStr::from_str(value); + let result: Result<f32, _> = FromStr::from_str(value); match result { - Ok(number) => return LengthOrPercentageOrAuto::Percentage((number as f64) / 100.0), + Ok(number) => return LengthOrPercentageOrAuto::Percentage((number as f32) / 100.0), Err(_) => return LengthOrPercentageOrAuto::Auto, } } @@ -243,7 +243,7 @@ pub fn parse_legacy_color(mut input: &str) -> Result<RGBA,()> { } // Step 9. - if input.char_at(0) == '#' { + if input.as_bytes()[0] == b'#' { input = &input[1..] } @@ -324,7 +324,7 @@ pub struct LowercaseString { impl LowercaseString { pub fn new(s: &str) -> LowercaseString { LowercaseString { - inner: s.chars().map(|c| c.to_lowercase()).collect(), + inner: s.to_lowercase(), } } } diff --git a/components/util/taskpool.rs b/components/util/taskpool.rs index ff70bc4c1c0..064b2c9c07e 100644 --- a/components/util/taskpool.rs +++ b/components/util/taskpool.rs @@ -44,7 +44,7 @@ impl TaskPool { loop { let job = rx.lock().unwrap().recv(); match job { - Ok(job) => job.invoke(()), + Ok(job) => job.call_box(()), Err(..) => break, } } @@ -54,6 +54,6 @@ impl TaskPool { pub fn execute<F>(&self, job: F) where F: FnOnce() + Send + 'static { - self.tx.send(Thunk::new(job)).unwrap(); + self.tx.send(Box::new(job)).unwrap(); } } diff --git a/components/util/vec.rs b/components/util/vec.rs index 238118aac1d..c660d26584a 100644 --- a/components/util/vec.rs +++ b/components/util/vec.rs @@ -2,10 +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 selectors::smallvec::VecLike; +use super::smallvec::VecLike; use std::cmp::{PartialOrd, PartialEq, Ordering}; -use std::iter::range_step; +use std::marker::PhantomData; +use std::ops; /// FIXME(pcwalton): Workaround for lack of unboxed closures. This is called in /// performance-critical code, so a closure is insufficient. @@ -68,7 +69,7 @@ impl<T:PartialEq + PartialOrd + Ord> Comparator<T,T> for DefaultComparator { // TODO(pcwalton): Speed up with SIMD, or better yet, find some way to not do this. pub fn byte_swap(data: &mut [u8]) { let length = data.len(); - for i in range_step(0, length, 4) { + for i in (0..length).step_by(4) { let r = data[i + 2]; data[i + 2] = data[i + 0]; data[i + 0] = r; @@ -76,14 +77,16 @@ pub fn byte_swap(data: &mut [u8]) { } /// A `VecLike` that only tracks whether or not something was ever pushed to it. -pub struct ForgetfulSink { +pub struct ForgetfulSink<T> { empty: bool, + _data: PhantomData<T>, } -impl ForgetfulSink { - pub fn new() -> ForgetfulSink { +impl<T> ForgetfulSink<T> { + pub fn new() -> ForgetfulSink<T> { ForgetfulSink { empty: true, + _data: PhantomData, } } @@ -92,19 +95,50 @@ impl ForgetfulSink { } } -impl<T> VecLike<T> for ForgetfulSink { - #[inline] - fn vec_len(&self) -> usize { +impl<T> ops::Deref for ForgetfulSink<T> { + type Target = [T]; + fn deref(&self) -> &[T] { unreachable!() } +} - #[inline] - fn vec_push(&mut self, _value: T) { - self.empty = false; +impl<T> ops::DerefMut for ForgetfulSink<T> { + fn deref_mut(&mut self) -> &mut [T] { + unreachable!() } +} +macro_rules! impl_index { + ($index_type: ty, $output_type: ty) => { + impl<T> ops::Index<$index_type> for ForgetfulSink<T> { + type Output = $output_type; + fn index(&self, _index: $index_type) -> &$output_type { + unreachable!() + } + } + + impl<T> ops::IndexMut<$index_type> for ForgetfulSink<T> { + fn index_mut(&mut self, _index: $index_type) -> &mut $output_type { + unreachable!() + } + } + } +} + +impl_index!(usize, T); +impl_index!(ops::Range<usize>, [T]); +impl_index!(ops::RangeFrom<usize>, [T]); +impl_index!(ops::RangeTo<usize>, [T]); +impl_index!(ops::RangeFull, [T]); + +impl<T> VecLike<T> for ForgetfulSink<T> { #[inline] - fn vec_slice_mut<'a>(&'a mut self, _start: usize, _end: usize) -> &'a mut [T] { + fn len(&self) -> usize { unreachable!() } + + #[inline] + fn push(&mut self, _value: T) { + self.empty = false; + } } diff --git a/components/webdriver_server/lib.rs b/components/webdriver_server/lib.rs index 7d410c90bf8..d22b4ba119b 100644 --- a/components/webdriver_server/lib.rs +++ b/components/webdriver_server/lib.rs @@ -5,8 +5,7 @@ #![crate_name = "webdriver_server"] #![crate_type = "rlib"] -#![feature(net)] -#![feature(rustc_private)] +#![feature(rustc_private, ip_addr)] #[macro_use] extern crate log; @@ -15,7 +14,7 @@ extern crate webdriver; extern crate msg; extern crate url; extern crate util; -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; extern crate uuid; extern crate webdriver_traits; @@ -35,15 +34,15 @@ use util::task::spawn_named; use uuid::Uuid; use std::borrow::ToOwned; -use std::net::IpAddr; use rustc_serialize::json::{Json, ToJson}; use std::collections::BTreeMap; +use std::net::SocketAddr; pub fn start_server(port: u16, constellation_chan: ConstellationChan) { let handler = Handler::new(constellation_chan); spawn_named("WebdriverHttpServer".to_owned(), move || { - server::start(IpAddr::new_v4(0, 0, 0, 0), port, handler); + server::start(SocketAddr::new("0.0.0.0".parse().unwrap(), port), handler); }); } diff --git a/components/webdriver_traits/Cargo.toml b/components/webdriver_traits/Cargo.toml index c4575e73a53..e27f0e4cf74 100644 --- a/components/webdriver_traits/Cargo.toml +++ b/components/webdriver_traits/Cargo.toml @@ -8,4 +8,4 @@ name = "webdriver_traits" path = "lib.rs" [dependencies] -rustc-serialize="0.3.4"
\ No newline at end of file +rustc-serialize="0.3.4" diff --git a/components/webdriver_traits/lib.rs b/components/webdriver_traits/lib.rs index 4e6a307f64a..16157a42ce3 100644 --- a/components/webdriver_traits/lib.rs +++ b/components/webdriver_traits/lib.rs @@ -5,7 +5,7 @@ #![crate_name = "webdriver_traits"] #![crate_type = "rlib"] -extern crate "rustc-serialize" as rustc_serialize; +extern crate rustc_serialize; use rustc_serialize::json::{Json, ToJson}; use std::sync::mpsc::Sender; diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index cecc03294f7..2671a8cdc53 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -6,6 +6,7 @@ dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "cocoa 0.1.1 (git+https://github.com/servo/rust-cocoa)", "compositing 0.0.1", + "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", "core_text 0.1.0 (git+https://github.com/servo/rust-core-text)", "devtools 0.0.1", @@ -15,9 +16,10 @@ dependencies = [ "glutin_app 0.0.1", "js 0.1.0 (git+https://github.com/servo/rust-mozjs)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net 0.0.1", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "script 0.0.1", @@ -25,19 +27,19 @@ dependencies = [ "servo 0.0.1", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "android_glue" -version = "0.0.1" -source = "git+https://github.com/tomaka/android-rs-glue#5a68056599fb498b0cf3715fd359894825e3b856" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "azure" version = "0.1.0" -source = "git+https://github.com/servo/rust-azure#3e5daf667a62f702dc16285e923464458bef785f" +source = "git+https://github.com/servo/rust-azure#91e18a325fa5fdee9b1634b44a3a3a7ac1fb09ff" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", @@ -45,8 +47,8 @@ dependencies = [ "egl 0.1.0 (git+https://github.com/servo/rust-egl)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] @@ -60,44 +62,50 @@ name = "canvas" version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "gleam 0.0.1 (git+https://github.com/servo/gleam)", - "glutin 0.0.7 (git+https://github.com/servo/glutin?branch=servo)", - "offscreen_gl_context 0.0.1 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)", + "glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "offscreen_gl_context 0.0.1 (git+https://github.com/servo/rust-offscreen-rendering-context)", "util 0.0.1", ] [[package]] name = "cgl" version = "0.0.1" -source = "git+https://github.com/servo/rust-cgl#211afc4d1572d8fe67b91c452441b6cb292a2bc7" +source = "git+https://github.com/servo/rust-cgl#16144321dc18d8ab538ee2acc0d2dad155a17899" dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clipboard" version = "0.0.1" -source = "git+https://github.com/aweinstock314/rust-x11-clipboard#eae9596e7e407c8b6037b934c1a8e42a309423fd" +source = "git+https://github.com/servo/rust-x11-clipboard#43afb218871e3148758c603f335576cb101cb1fa" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] [[package]] name = "clock_ticks" -version = "0.0.4" -source = "git+https://github.com/tomaka/clock_ticks#6a3005279bedc406b13eea09ff92447f05ca0de6" +version = "0.0.5" +source = "git+https://github.com/tomaka/clock_ticks#462848731d99ed2f800e2e5a19e2d8ca3b11c90c" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "cocoa" version = "0.1.1" -source = "git+https://github.com/servo/rust-cocoa#ca3441a14783aa0683e073f1a1f990ed21900718" +source = "git+https://github.com/servo/rust-cocoa#26d02e3f3606223645dde173a7bb924bce4836de" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -105,7 +113,7 @@ name = "compositing" version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", - "clipboard 0.0.1 (git+https://github.com/aweinstock314/rust-x11-clipboard)", + "clipboard 0.0.1 (git+https://github.com/servo/rust-x11-clipboard)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", "core_text 0.1.0 (git+https://github.com/servo/rust-core-text)", "devtools_traits 0.0.1", @@ -114,73 +122,79 @@ dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "layout_traits 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net 0.0.1", "net_traits 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", "script_traits 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] [[package]] name = "cookie" -version = "0.1.14" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_foundation" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-foundation#c577bd64b0301fe926cf7b757b9852a1ce1d521d" +source = "git+https://github.com/servo/rust-core-foundation#928efbae42fc596e6ede2cf0949c3d6d6f3dad8f" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_graphics" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-graphics#e169ad38f71ed003c21fb550a9dfa0e51423ed3a" +source = "git+https://github.com/servo/rust-core-graphics#da0d2fe947412afea55b438454194b2183c21594" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_text" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-text#8809f011445585d023d5e2a0712a1adcbf7ce609" +source = "git+https://github.com/servo/rust-core-text#bc6994c3765f0660e9c04f5488ba194a9354e8fb" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cssparser" -version = "0.2.0" -source = "git+https://github.com/servo/rust-cssparser#56d5f94d5239d4bd68358813405e4d5823c01ff6" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "debug-builders" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "devtools" version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -189,100 +203,109 @@ name = "devtools_traits" version = "0.0.1" dependencies = [ "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "egl" version = "0.1.0" -source = "git+https://github.com/servo/rust-egl#328e79b6256dea346f1821ccc4215e95fd1d58bc" +source = "git+https://github.com/servo/rust-egl#c0159346b3adfdcf13f2cd86f5ee41750a72c078" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "encoding" -version = "0.2.25" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding-index-japanese 1.20141219.2 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-korean 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-simpchinese 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-singlebyte 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-tradchinese 1.20141219.2 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-japanese" -version = "1.20141219.2" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-korean" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-simpchinese" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-singlebyte" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-tradchinese" -version = "1.20141219.2" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding_index_tests" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "expat-sys" version = "2.1.0" -source = "git+https://github.com/servo/libexpat#523a2f2f51b41adf7bb5c4c65e80db0cb615d70b" +source = "git+https://github.com/servo/libexpat#5f798cfbb74650a5e1d95e4c03a9e41e55e28625" [[package]] name = "flate2" -version = "0.2.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "fnv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "fontconfig" version = "0.1.0" -source = "git+https://github.com/servo/rust-fontconfig#91195bd29daa9280680bb28ba556821d504a17c6" +source = "git+https://github.com/servo/rust-fontconfig#7839e5adcb4d6da3cefe2256f5071ac0203b9206" dependencies = [ "fontconfig-sys 2.11.1 (git+https://github.com/servo/libfontconfig)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "fontconfig-sys" version = "2.11.1" -source = "git+https://github.com/servo/libfontconfig#adc60cacbca697123f4535ce2ff07619ec013cec" +source = "git+https://github.com/servo/libfontconfig#ce4a38633dc649b95c9b4935c0cce53e76d8b46a" dependencies = [ "expat-sys 2.1.0 (git+https://github.com/servo/libexpat)", "freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)", @@ -293,38 +316,41 @@ name = "freetype" version = "0.1.0" source = "git+https://github.com/servo/rust-freetype#f256a9ac84893f0a183b8966de2a3a03d7552b8b" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "freetype-sys" version = "2.4.11" -source = "git+https://github.com/servo/libfreetype2#a488dfd86872bf9c163d54a7f73a5dc4d3c4fd9e" +source = "git+https://github.com/servo/libfreetype2#50c1cf412d87f20ccbb940e39a14a38ae7cbb512" [[package]] name = "gcc" -version = "0.3.1" -source = "git+https://github.com/alexcrichton/gcc-rs#564247d019449ba46f25f64ffdefade5968b6ae7" +version = "0.3.4" +source = "git+https://github.com/alexcrichton/gcc-rs#9596a4e6da55e5ddbad6fd645b9727aae6b545ef" [[package]] name = "gcc" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gdi32-sys" -version = "0.0.4" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "geom" version = "0.1.0" -source = "git+https://github.com/servo/rust-geom#c47fc0f927b6d6e5543fe3b5445c86810831dce1" +source = "git+https://github.com/servo/rust-geom#c4bdb1ef8f4915ae636eb752b103f69246b50304" dependencies = [ - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -341,69 +367,84 @@ dependencies = [ "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "harfbuzz 0.1.0 (git+https://github.com/servo/rust-harfbuzz)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "gl" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "gl_common" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gl_generator" -version = "0.0.19" +version = "0.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "xml-rs 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gleam" version = "0.0.1" -source = "git+https://github.com/servo/gleam#70c5f2ea3ef3602277b7c380c24b504e42338056" +source = "git+https://github.com/servo/gleam#f2edabf2ef0474bb270b107e5e68c2727c4a422d" dependencies = [ "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glutin" -version = "0.0.7" -source = "git+https://github.com/servo/glutin?branch=servo#0feab4842c5b229bfe88739d2c526d03c198fd33" +version = "0.0.26" +source = "git+https://github.com/servo/glutin?branch=servo#c1af76550f311e3da7a08d393b4ea9805cb61a7b" dependencies = [ - "android_glue 0.0.1 (git+https://github.com/tomaka/android-rs-glue)", - "cocoa 0.1.1 (git+https://github.com/servo/rust-cocoa)", - "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", - "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", - "gdi32-sys 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "android_glue 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gdi32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_cocoa 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_core_foundation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_core_graphics 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "kernel32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "user32-sys 0.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "osmesa-sys 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "user32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", + "x11 0.0.32 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -416,99 +457,139 @@ dependencies = [ "egl 0.1.0 (git+https://github.com/servo/rust-egl)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", - "glutin 0.0.7 (git+https://github.com/servo/glutin?branch=servo)", + "glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "script_traits 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "glutin_cocoa" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_core_foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_core_graphics" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "glutin_core_foundation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "glx" version = "0.0.1" -source = "git+https://github.com/servo/rust-glx#f2103861d38076ef5e01a8c2f58df1e79ca12f41" +source = "git+https://github.com/servo/rust-glx#60ac0aee2438eadb4b51ddc8eac6fc4b5ca8e447" dependencies = [ "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "harfbuzz" version = "0.1.0" -source = "git+https://github.com/servo/rust-harfbuzz#cc875777f820da0b85f39c2359d9609650b16600" +source = "git+https://github.com/servo/rust-harfbuzz#33b6fd019fc04e46dd5fe15a5faf8efb1a9a0128" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "html5ever" version = "0.0.0" -source = "git+https://github.com/servo/html5ever#8bad1ca8e1e05a7972be80acc64efd729ffdc8a5" +source = "git+https://github.com/servo/html5ever#74dc5f5a36451cfbe789488b20d51bef97c63898" dependencies = [ "html5ever_macros 0.0.0 (git+https://github.com/servo/html5ever)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mac 0.0.2 (git+https://github.com/reem/rust-mac)", - "phf 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_macros 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_macros 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "html5ever_macros" version = "0.0.0" -source = "git+https://github.com/servo/html5ever#8bad1ca8e1e05a7972be80acc64efd729ffdc8a5" +source = "git+https://github.com/servo/html5ever#74dc5f5a36451cfbe789488b20d51bef97c63898" dependencies = [ "mac 0.0.2 (git+https://github.com/reem/rust-mac)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "httparse" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "hyper" -version = "0.3.0" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "httparse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "typeable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "io_surface" version = "0.1.0" -source = "git+https://github.com/servo/rust-io-surface#f380a03a9b0e0316866d4320d46a78dda87efbec" +source = "git+https://github.com/servo/rust-io-surface#ab0ebd4ea6dd953c1581d9486b9e80ecf3c7577d" dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "js" version = "0.1.0" -source = "git+https://github.com/servo/rust-mozjs#402b7b2db8816ffeccacfa9a8d316f4487e96ba0" +source = "git+https://github.com/servo/rust-mozjs#30a1ad31d1ee47a8e4e1ef582e793badfb405fa0" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel32-sys" -version = "0.0.11" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -519,7 +600,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "layers" version = "0.1.0" -source = "git+https://github.com/servo/rust-layers#df3a14d00260c8ab506565972555931444361ff8" +source = "git+https://github.com/servo/rust-layers#018259e838c3842032010829feeaba316e577376" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", @@ -529,8 +610,10 @@ dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", "glx 0.0.1 (git+https://github.com/servo/rust-glx)", "io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] @@ -541,26 +624,26 @@ dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "canvas 0.0.1", - "clock_ticks 0.0.4 (git+https://github.com/tomaka/clock_ticks)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "clock_ticks 0.0.5 (git+https://github.com/tomaka/clock_ticks)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "layout_traits 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script 0.0.1", "script_traits 0.0.1", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -573,32 +656,40 @@ dependencies = [ "net_traits 0.0.1", "profile_traits 0.0.1", "script_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "lazy_static" -version = "0.1.8" -source = "git+https://github.com/Kimundi/lazy-static.rs#56b4be4141d3c58273cf5ee1d2e956e2f22248b9" +version = "0.1.10" +source = "git+https://github.com/Kimundi/lazy-static.rs#1366fce0e706ee8530c88b80039946c4c7e1f993" + +[[package]] +name = "lazy_static" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libressl-pnacl-sys" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pnacl-build-helper 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pnacl-build-helper 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.2.5" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "mac" @@ -606,6 +697,14 @@ version = "0.0.2" source = "git+https://github.com/reem/rust-mac#6316d3f4663756180fd236b126a84e245e978765" [[package]] +name = "malloc_buf" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "matches" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -615,21 +714,21 @@ name = "mime" version = "0.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz-sys" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "mod_path" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -645,11 +744,11 @@ dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] @@ -658,18 +757,18 @@ dependencies = [ name = "net" version = "0.0.1" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "net_traits 0.0.1", - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "regex_macros 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "regex_macros 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -678,80 +777,119 @@ name = "net_traits" version = "0.0.1" dependencies = [ "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "png 0.1.0 (git+https://github.com/servo/rust-png)", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "num" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "num_cpus" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "objc" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "malloc_buf 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "offscreen_gl_context" version = "0.0.1" -source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#9547d416019b15e0e59dc5176f5b1a14e14b44ca" +source = "git+https://github.com/servo/rust-offscreen-rendering-context#9ef802439467c287178afe46c5dd7adec13993eb" dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", "glx 0.0.1 (git+https://github.com/servo/rust-glx)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] [[package]] name = "openssl" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "openssl-sys" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libressl-pnacl-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libressl-pnacl-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "osmesa-sys" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gl 0.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "debug-builders 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_generator" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_macros" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_generator 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_generator 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_shared" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pkg-config" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -763,32 +901,36 @@ dependencies = [ [[package]] name = "pnacl-build-helper" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "png" version = "0.1.0" -source = "git+https://github.com/servo/rust-png#1d9c59c97598014860077f372443ae98b35ff4d9" +source = "git+https://github.com/servo/rust-png#811e4d339441dd34fb087fc895e1619ba882933f" dependencies = [ - "gcc 0.3.1 (git+https://github.com/alexcrichton/gcc-rs)", + "gcc 0.3.4 (git+https://github.com/alexcrichton/gcc-rs)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "png-sys 1.6.16 (git+https://github.com/servo/rust-png)", ] [[package]] name = "png-sys" version = "1.6.16" -source = "git+https://github.com/servo/rust-png#1d9c59c97598014860077f372443ae98b35ff4d9" +source = "git+https://github.com/servo/rust-png#811e4d339441dd34fb087fc895e1619ba882933f" [[package]] name = "profile" version = "0.0.1" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "profile_traits 0.0.1", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", "task_info 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -796,35 +938,39 @@ dependencies = [ name = "profile_traits" version = "0.0.1" dependencies = [ - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "quicksort" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "rand" -version = "0.1.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "0.1.18" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "regex_macros" -version = "0.1.11" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-serialize" -version = "0.3.4" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -833,30 +979,32 @@ version = "0.0.1" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "canvas 0.0.1", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "html5ever 0.0.0 (git+https://github.com/servo/html5ever)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "js 0.1.0 (git+https://github.com/servo/rust-mozjs)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile_traits 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.1.11 (git+https://github.com/rust-lang/uuid)", + "uuid 0.1.16 (git+https://github.com/rust-lang/uuid)", "webdriver_traits 0.0.1", ] @@ -866,10 +1014,10 @@ version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] @@ -877,11 +1025,13 @@ dependencies = [ [[package]] name = "selectors" version = "0.1.0" -source = "git+https://github.com/servo/rust-selectors#0d7d846090c21d71ebb1bc17921806933a38f52b" +source = "git+https://github.com/servo/rust-selectors#1fda09bf0c59acfcb697f71b38dad22108b3d27a" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "quicksort 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", ] @@ -904,8 +1054,8 @@ dependencies = [ "profile 0.0.1", "profile_traits 0.0.1", "script 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_server 0.0.1", ] @@ -913,35 +1063,43 @@ dependencies = [ [[package]] name = "skia" version = "0.0.20130412" -source = "git+https://github.com/servo/skia?branch=upstream-2014-06-16#db5b5393c83da9ff5b8fb2076481e98fb2b659f2" +source = "git+https://github.com/servo/skia#d60e6753b2b23b3b4ff787b505da56cfad0335c9" dependencies = [ "expat-sys 2.1.0 (git+https://github.com/servo/libexpat)", "freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)", ] [[package]] +name = "smallvec" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "stb_image" version = "0.1.0" -source = "git+https://github.com/servo/rust-stb-image#b683cc9e7ba52a1bb65361347da0df1bc9c5e854" +source = "git+https://github.com/servo/rust-stb-image#f6c411b381322609a321b7fb5f948b2365973604" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "string_cache" version = "0.0.0" -source = "git+https://github.com/servo/string-cache#124cb555651bd7838c5c6dc4788bc4f5350947a9" +source = "git+https://github.com/servo/string-cache#385c4ac197742e355631209be3613c8a9c7594b6" dependencies = [ - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", - "phf 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_macros 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", + "phf 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_macros 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", ] [[package]] name = "string_cache_plugin" version = "0.0.0" -source = "git+https://github.com/servo/string-cache#124cb555651bd7838c5c6dc4788bc4f5350947a9" +source = "git+https://github.com/servo/string-cache#385c4ac197742e355631209be3613c8a9c7594b6" dependencies = [ - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", "mac 0.0.2 (git+https://github.com/reem/rust-mac)", ] @@ -950,19 +1108,18 @@ name = "style" version = "0.0.1" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "mod_path 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "mod_path 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -971,44 +1128,57 @@ name = "task_info" version = "0.0.1" [[package]] +name = "tempdir" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "tenacious" version = "0.0.1" source = "git+https://github.com/Manishearth/rust-tenacious.git#d61782e70005a9f0cdf66f366d4ec88fc563ea1e" [[package]] -name = "text_writer" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] name = "time" -version = "0.1.19" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "traitobject" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "typeable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "unicase" -version = "0.0.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "url" -version = "0.2.23" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "user32-sys" -version = "0.0.11" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1017,49 +1187,52 @@ version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", + "smallvec 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "uuid" -version = "0.1.11" -source = "git+https://github.com/rust-lang/uuid#c7862508f84b114d22bb68ec01202eafc50a81b2" +version = "0.1.16" +source = "git+https://github.com/rust-lang/uuid#7c767220c41746d346c8195e31ddf090ac6568e7" dependencies = [ - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "uuid" -version = "0.1.11" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webdriver" -version = "0.0.1" -source = "git+https://github.com/jgraham/webdriver-rust.git#fa625e3cf8fdb39b503c1cc902506df3a1d1c9de" +version = "0.1.0" +source = "git+https://github.com/jgraham/webdriver-rust.git#66547888f47bae7e938a92af4586276479343216" dependencies = [ - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1067,11 +1240,11 @@ name = "webdriver_server" version = "0.0.1" dependencies = [ "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "webdriver 0.0.1 (git+https://github.com/jgraham/webdriver-rust.git)", + "uuid 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "webdriver 0.1.0 (git+https://github.com/jgraham/webdriver-rust.git)", "webdriver_traits 0.0.1", ] @@ -1079,20 +1252,23 @@ dependencies = [ name = "webdriver_traits" version = "0.0.1" dependencies = [ - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "winapi" -version = "0.0.5" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] -name = "winapi" -version = "0.1.15" +name = "x11" +version = "0.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1101,12 +1277,12 @@ version = "0.1.0" source = "git+https://github.com/servo/rust-xlib#1a0f3d48fbebf96e2d1bf83ac71309b27f49e0c7" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "xml-rs" -version = "0.1.20" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/cef/Cargo.toml b/ports/cef/Cargo.toml index a8ea2e62517..2e73e96319c 100644 --- a/ports/cef/Cargo.toml +++ b/ports/cef/Cargo.toml @@ -62,6 +62,9 @@ git = "https://github.com/servo/rust-png" [dependencies.stb_image] git = "https://github.com/servo/rust-stb-image" +[dependencies.core_foundation] +git = "https://github.com/servo/rust-core-foundation" + [dependencies.core_graphics] git = "https://github.com/servo/rust-core-graphics" @@ -80,3 +83,4 @@ git = "https://github.com/servo/rust-cgl" [dependencies] url = "*" libc = "*" +objc = "0.1" diff --git a/ports/cef/lib.rs b/ports/cef/lib.rs index 6e0627b959b..2f6718a1dea 100644 --- a/ports/cef/lib.rs +++ b/ports/cef/lib.rs @@ -7,11 +7,12 @@ #![feature(plugin)] #![feature(link_args)] #![feature(thread_local)] -#![feature(unicode)] #![feature(core)] #![feature(std_misc)] #![feature(rustc_private)] #![feature(collections)] +#![feature(negate_unsigned)] +#![feature(unicode)] #![allow(non_camel_case_types)] @@ -31,9 +32,9 @@ extern crate glutin_app; extern crate js; extern crate layers; extern crate png; +extern crate rustc_unicode; extern crate script; extern crate script_traits; -extern crate unicode; extern crate net; extern crate msg; @@ -42,16 +43,21 @@ extern crate style; extern crate stb_image; extern crate libc; -extern crate "url" as std_url; +extern crate url as std_url; #[cfg(target_os="macos")] extern crate cgl; #[cfg(target_os="macos")] extern crate cocoa; #[cfg(target_os="macos")] +extern crate core_foundation; +#[cfg(target_os="macos")] extern crate core_graphics; #[cfg(target_os="macos")] extern crate core_text; +#[cfg(target_os="macos")] +#[macro_use] +extern crate objc; // Must come first. pub mod macros; diff --git a/ports/cef/string.rs b/ports/cef/string.rs index 37cdafac751..523c4f66d2d 100644 --- a/ports/cef/string.rs +++ b/ports/cef/string.rs @@ -94,7 +94,7 @@ pub extern "C" fn cef_string_utf8_set(src: *const u8, src_len: size_t, output: * return 0; } - ptr::copy((*output).str, src, src_len as usize); + ptr::copy(src, (*output).str, src_len as usize); (*output).length = src_len; (*output).dtor = Some(string_utf8_dtor as extern "C" fn(*mut u8)); } @@ -175,7 +175,7 @@ pub extern "C" fn cef_string_utf16_set(src: *const c_ushort, src_len: size_t, ou return 0; } - ptr::copy((*output).str, src, src_len as usize); + ptr::copy(src, (*output).str, src_len as usize); (*output).length = src_len; (*output).dtor = Some(string_utf16_dtor as extern "C" fn(*mut c_ushort)); } @@ -233,7 +233,7 @@ pub extern "C" fn cef_string_wide_set(src: *const wchar_t, src_len: size_t, outp return 0; } - ptr::copy((*output).str, src, src_len as usize); + ptr::copy(src, (*output).str, src_len as usize); (*output).length = src_len; (*output).dtor = Some(string_wide_dtor as extern "C" fn(*mut wchar_t)); } diff --git a/ports/cef/string_multimap.rs b/ports/cef/string_multimap.rs index d0ad3aa0b87..909039bc2ad 100644 --- a/ports/cef/string_multimap.rs +++ b/ports/cef/string_multimap.rs @@ -3,9 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use eutil::slice_to_str; -use libc::{c_int}; +use libc::c_int; use std::collections::BTreeMap; -use std::iter::AdditiveIterator; use std::mem; use std::string::String; use string::{cef_string_userfree_utf16_alloc, cef_string_userfree_utf16_free}; @@ -31,7 +30,11 @@ pub extern "C" fn cef_string_multimap_size(smm: *mut cef_string_multimap_t) -> c unsafe { if smm.is_null() { return 0; } let v = string_multimap_to_treemap(smm); - (*v).values().map(|val| (*val).len()).sum() as c_int + // t1 : collections::btree::map::Values<'_, collections::string::String, collections::vec::Vec<*mut types::cef_string_utf16>>` + let t1 = (*v).values(); + // t2 : collections::btree::map::BTreeMap<collections::string::String, collections::vec::Vec<*mut types::cef_string_utf16>> + let t2 : usize = t1.map(|val| (*val).len()).sum(); + t2 as c_int } } diff --git a/ports/cef/window.rs b/ports/cef/window.rs index 948a3c13380..90740c54622 100644 --- a/ports/cef/window.rs +++ b/ports/cef/window.rs @@ -10,8 +10,8 @@ use eutil::Downcast; use interfaces::CefBrowser; use render_handler::CefRenderHandlerExtensions; +use rustc_unicode::str::Utf16Encoder; use types::{cef_cursor_handle_t, cef_rect_t}; -use unicode::str::Utf16Encoder; use compositing::compositor_task::{self, CompositorProxy, CompositorReceiver}; use compositing::windowing::{WindowEvent, WindowMethods}; @@ -91,30 +91,33 @@ impl Window { /// bundles custom resources (which we don't yet do). #[cfg(target_os="macos")] fn cursor_handle_for_cursor(&self, cursor: Cursor) -> cef_cursor_handle_t { - use cocoa::base::{class, msg_send, selector}; - - let cocoa_name = match cursor { - Cursor::NoCursor => return 0 as cef_cursor_handle_t, - Cursor::ContextMenuCursor => "contextualMenuCursor", - Cursor::GrabbingCursor => "closedHandCursor", - Cursor::CrosshairCursor => "crosshairCursor", - Cursor::CopyCursor => "dragCopyCursor", - Cursor::AliasCursor => "dragLinkCursor", - Cursor::TextCursor => "IBeamCursor", - Cursor::GrabCursor | Cursor::AllScrollCursor => "openHandCursor", - Cursor::NoDropCursor | Cursor::NotAllowedCursor => "operationNotAllowedCursor", - Cursor::PointerCursor => "pointingHandCursor", - Cursor::SResizeCursor => "resizeDownCursor", - Cursor::WResizeCursor => "resizeLeftCursor", - Cursor::EwResizeCursor | Cursor::ColResizeCursor => "resizeLeftRightCursor", - Cursor::EResizeCursor => "resizeRightCursor", - Cursor::NResizeCursor => "resizeUpCursor", - Cursor::NsResizeCursor | Cursor::RowResizeCursor => "resizeUpDownCursor", - Cursor::VerticalTextCursor => "IBeamCursorForVerticalLayout", - _ => "arrowCursor", - }; + use cocoa::base::class; + unsafe { - msg_send()(class("NSCursor"), selector(cocoa_name)) + match cursor { + Cursor::NoCursor => return 0 as cef_cursor_handle_t, + Cursor::ContextMenuCursor => msg_send![class("NSCursor"), contextualMenuCursor], + Cursor::GrabbingCursor => msg_send![class("NSCursor"), closedHandCursor], + Cursor::CrosshairCursor => msg_send![class("NSCursor"), crosshairCursor], + Cursor::CopyCursor => msg_send![class("NSCursor"), dragCopyCursor], + Cursor::AliasCursor => msg_send![class("NSCursor"), dragLinkCursor], + Cursor::TextCursor => msg_send![class("NSCursor"), IBeamCursor], + Cursor::GrabCursor | Cursor::AllScrollCursor => + msg_send![class("NSCursor"), openHandCursor], + Cursor::NoDropCursor | Cursor::NotAllowedCursor => + msg_send![class("NSCursor"), operationNotAllowedCursor], + Cursor::PointerCursor => msg_send![class("NSCursor"), pointingHandCursor], + Cursor::SResizeCursor => msg_send![class("NSCursor"), resizeDownCursor], + Cursor::WResizeCursor => msg_send![class("NSCursor"), resizeLeftCursor], + Cursor::EwResizeCursor | Cursor::ColResizeCursor => + msg_send![class("NSCursor"), resizeLeftRightCursor], + Cursor::EResizeCursor => msg_send![class("NSCursor"), resizeRightCursor], + Cursor::NResizeCursor => msg_send![class("NSCursor"), resizeUpCursor], + Cursor::NsResizeCursor | Cursor::RowResizeCursor => + msg_send![class("NSCursor"), resizeUpDownCursor], + Cursor::VerticalTextCursor => msg_send![class("NSCursor"), IBeamCursorForVerticalLayout], + _ => msg_send![class("NSCursor"), arrowCursor], + } } } @@ -325,9 +328,10 @@ struct CefCompositorProxy { impl CompositorProxy for CefCompositorProxy { #[cfg(target_os="macos")] fn send(&mut self, msg: compositor_task::Msg) { - use cocoa::appkit::{NSApp, NSApplication, NSApplicationDefined, NSAutoreleasePool}; - use cocoa::appkit::{NSEvent, NSEventModifierFlags, NSEventSubtype, NSPoint}; + use cocoa::appkit::{NSApp, NSApplication, NSApplicationDefined}; + use cocoa::appkit::{NSEvent, NSEventModifierFlags, NSEventSubtype}; use cocoa::base::nil; + use cocoa::foundation::{NSAutoreleasePool, NSPoint}; // Send a message and kick the OS event loop awake. self.sender.send(msg).unwrap(); @@ -342,7 +346,7 @@ impl CompositorProxy for CefCompositorProxy { NSEventModifierFlags::empty(), 0.0, 0, - 0, + nil, NSEventSubtype::NSWindowExposedEventType, 0, 0); diff --git a/ports/cef/wrappers.rs b/ports/cef/wrappers.rs index 99858f7887e..0ac8b5f668b 100644 --- a/ports/cef/wrappers.rs +++ b/ports/cef/wrappers.rs @@ -4,6 +4,7 @@ use interfaces::{cef_drag_data_t, cef_post_data_element_t, cef_v8value_t, CefPostDataElement}; use interfaces::{CefV8Value}; +use rustc_unicode::str::Utf16Encoder; use types::{cef_base_t, cef_browser_settings_t, cef_color_model_t}; use types::{cef_context_menu_edit_state_flags_t, cef_context_menu_handler_t}; use types::{cef_context_menu_media_state_flags_t}; @@ -29,7 +30,6 @@ use types::{cef_termination_status_t, cef_text_input_context_t, cef_thread_id_t} use types::{cef_time_t, cef_transition_type_t, cef_urlrequest_status_t}; use types::{cef_v8_accesscontrol_t, cef_v8_propertyattribute_t, cef_value_type_t}; use types::{cef_window_info_t, cef_xml_encoding_type_t, cef_xml_node_type_t}; -use unicode::str::Utf16Encoder; use libc::{self, c_char, c_int, c_ushort, c_void}; use std::boxed; @@ -183,8 +183,8 @@ cef_unimplemented_wrapper!(cef_string_t, String); impl<'a> CefWrap<*const cef_string_t> for &'a [u16] { fn to_c(buffer: &'a [u16]) -> *const cef_string_t { unsafe { - let ptr: *mut c_ushort = mem::transmute(libc::malloc(((buffer.len() + 1) * 2) as u64)); - ptr::copy(ptr, mem::transmute(buffer.as_ptr()), buffer.len()); + let ptr = libc::malloc(((buffer.len() + 1) * 2) as u64) as *mut c_ushort; + ptr::copy(buffer.as_ptr(), ptr, buffer.len()); *ptr.offset(buffer.len() as isize) = 0; // FIXME(pcwalton): This leaks!! We should instead have the caller pass some scratch diff --git a/ports/glutin/lib.rs b/ports/glutin/lib.rs index 8198eae5493..b655bf4ef7f 100644 --- a/ports/glutin/lib.rs +++ b/ports/glutin/lib.rs @@ -4,9 +4,7 @@ //! A simple application that uses glutin to open a window for Servo to display in. -#![feature(int_uint)] #![feature(box_syntax)] -#![cfg_attr(all(feature = "window", target_os = "linux"), feature(old_io, std_misc))] #[macro_use] extern crate bitflags; #[cfg(target_os="macos")] diff --git a/ports/glutin/window.rs b/ports/glutin/window.rs index a13dbd56ff2..48a1c9b61c9 100644 --- a/ports/glutin/window.rs +++ b/ports/glutin/window.rs @@ -33,8 +33,6 @@ use msg::constellation_msg::{KeyState, CONTROL, SHIFT, ALT}; #[cfg(feature = "window")] use std::cell::{Cell, RefCell}; #[cfg(feature = "window")] -use std::num::Float; -#[cfg(feature = "window")] use util::opts; #[cfg(all(feature = "headless", target_os="linux"))] @@ -266,8 +264,7 @@ impl Window { #[cfg(target_os="linux")] fn handle_next_event(&self) -> bool { - use std::old_io::timer::sleep; - use std::time::duration::Duration; + use std::thread::sleep_ms; // TODO(gw): This is an awful hack to work around the // broken way we currently call X11 from multiple threads. @@ -291,7 +288,7 @@ impl Window { self.handle_window_event(event) } None => { - sleep(Duration::milliseconds(16)); + sleep_ms(16); false } } @@ -741,42 +738,42 @@ impl CompositorProxy for GlutinCompositorProxy { #[allow(non_snake_case)] #[no_mangle] -pub extern "C" fn glBindVertexArrayOES(_array: uint) +pub extern "C" fn glBindVertexArrayOES(_array: usize) { unimplemented!() } #[allow(non_snake_case)] #[no_mangle] -pub extern "C" fn glDeleteVertexArraysOES(_n: int, _arrays: *const ()) +pub extern "C" fn glDeleteVertexArraysOES(_n: isize, _arrays: *const ()) { unimplemented!() } #[allow(non_snake_case)] #[no_mangle] -pub extern "C" fn glGenVertexArraysOES(_n: int, _arrays: *const ()) +pub extern "C" fn glGenVertexArraysOES(_n: isize, _arrays: *const ()) { unimplemented!() } #[allow(non_snake_case)] #[no_mangle] -pub extern "C" fn glRenderbufferStorageMultisampleIMG(_: int, _: int, _: int, _: int, _: int) +pub extern "C" fn glRenderbufferStorageMultisampleIMG(_: isize, _: isize, _: isize, _: isize, _: isize) { unimplemented!() } #[allow(non_snake_case)] #[no_mangle] -pub extern "C" fn glFramebufferTexture2DMultisampleIMG(_: int, _: int, _: int, _: int, _: int, _: int) +pub extern "C" fn glFramebufferTexture2DMultisampleIMG(_: isize, _: isize, _: isize, _: isize, _: isize, _: isize) { unimplemented!() } #[allow(non_snake_case)] #[no_mangle] -pub extern "C" fn glDiscardFramebufferEXT(_: int, _: int, _: *const ()) +pub extern "C" fn glDiscardFramebufferEXT(_: isize, _: isize, _: *const ()) { unimplemented!() } diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock index ccad0c6f5c3..6d8e591a0ba 100644 --- a/ports/gonk/Cargo.lock +++ b/ports/gonk/Cargo.lock @@ -5,12 +5,13 @@ dependencies = [ "compositing 0.0.1", "devtools 0.0.1", "egl 0.1.0 (git+https://github.com/servo/rust-egl)", + "errno 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "gleam 0.0.1 (git+https://github.com/servo/gleam)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "layout 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net 0.0.1", "net_traits 0.0.1", @@ -18,20 +19,20 @@ dependencies = [ "script 0.0.1", "script_traits 0.0.1", "servo 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "android_glue" -version = "0.0.1" -source = "git+https://github.com/tomaka/android-rs-glue#5a68056599fb498b0cf3715fd359894825e3b856" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "azure" version = "0.1.0" -source = "git+https://github.com/servo/rust-azure#3e5daf667a62f702dc16285e923464458bef785f" +source = "git+https://github.com/servo/rust-azure#91e18a325fa5fdee9b1634b44a3a3a7ac1fb09ff" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", @@ -39,8 +40,8 @@ dependencies = [ "egl 0.1.0 (git+https://github.com/servo/rust-egl)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] @@ -54,45 +55,40 @@ name = "canvas" version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "gleam 0.0.1 (git+https://github.com/servo/gleam)", - "glutin 0.0.7 (git+https://github.com/servo/glutin?branch=servo)", - "offscreen_gl_context 0.0.1 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)", + "glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "offscreen_gl_context 0.0.1 (git+https://github.com/servo/rust-offscreen-rendering-context)", "util 0.0.1", ] [[package]] name = "cgl" version = "0.0.1" -source = "git+https://github.com/servo/rust-cgl#211afc4d1572d8fe67b91c452441b6cb292a2bc7" +source = "git+https://github.com/servo/rust-cgl#16144321dc18d8ab538ee2acc0d2dad155a17899" dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clipboard" version = "0.0.1" -source = "git+https://github.com/aweinstock314/rust-x11-clipboard#eae9596e7e407c8b6037b934c1a8e42a309423fd" +source = "git+https://github.com/servo/rust-x11-clipboard#43afb218871e3148758c603f335576cb101cb1fa" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] [[package]] name = "clock_ticks" -version = "0.0.4" -source = "git+https://github.com/tomaka/clock_ticks#6a3005279bedc406b13eea09ff92447f05ca0de6" - -[[package]] -name = "cocoa" -version = "0.1.1" -source = "git+https://github.com/servo/rust-cocoa#26d02e3f3606223645dde173a7bb924bce4836de" +version = "0.0.5" +source = "git+https://github.com/tomaka/clock_ticks#462848731d99ed2f800e2e5a19e2d8ca3b11c90c" dependencies = [ - "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -100,7 +96,7 @@ name = "compositing" version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", - "clipboard 0.0.1 (git+https://github.com/aweinstock314/rust-x11-clipboard)", + "clipboard 0.0.1 (git+https://github.com/servo/rust-x11-clipboard)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", "core_text 0.1.0 (git+https://github.com/servo/rust-core-text)", "devtools_traits 0.0.1", @@ -109,73 +105,79 @@ dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "layout_traits 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net 0.0.1", "net_traits 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "profile 0.0.1", + "profile_traits 0.0.1", "script_traits 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] [[package]] name = "cookie" -version = "0.1.14" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_foundation" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-foundation#c577bd64b0301fe926cf7b757b9852a1ce1d521d" +source = "git+https://github.com/servo/rust-core-foundation#928efbae42fc596e6ede2cf0949c3d6d6f3dad8f" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_graphics" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-graphics#e169ad38f71ed003c21fb550a9dfa0e51423ed3a" +source = "git+https://github.com/servo/rust-core-graphics#da0d2fe947412afea55b438454194b2183c21594" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core_text" version = "0.1.0" -source = "git+https://github.com/servo/rust-core-text#8809f011445585d023d5e2a0712a1adcbf7ce609" +source = "git+https://github.com/servo/rust-core-text#bc6994c3765f0660e9c04f5488ba194a9354e8fb" dependencies = [ "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cssparser" -version = "0.2.0" -source = "git+https://github.com/servo/rust-cssparser#56d5f94d5239d4bd68358813405e4d5823c01ff6" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "debug-builders" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "devtools" version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -184,100 +186,119 @@ name = "devtools_traits" version = "0.0.1" dependencies = [ "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "egl" version = "0.1.0" -source = "git+https://github.com/servo/rust-egl#328e79b6256dea346f1821ccc4215e95fd1d58bc" +source = "git+https://github.com/servo/rust-egl#c0159346b3adfdcf13f2cd86f5ee41750a72c078" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "encoding" -version = "0.2.25" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding-index-japanese 1.20141219.2 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-korean 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-simpchinese 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-singlebyte 1.20141219.1 (registry+https://github.com/rust-lang/crates.io-index)", - "encoding-index-tradchinese 1.20141219.2 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-japanese" -version = "1.20141219.2" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-korean" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-simpchinese" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-singlebyte" -version = "1.20141219.1" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding-index-tradchinese" -version = "1.20141219.2" +version = "1.20141219.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_index_tests 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "encoding_index_tests" -version = "0.1.3" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "errno" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "kernel32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "expat-sys" version = "2.1.0" -source = "git+https://github.com/servo/libexpat#523a2f2f51b41adf7bb5c4c65e80db0cb615d70b" +source = "git+https://github.com/servo/libexpat#5f798cfbb74650a5e1d95e4c03a9e41e55e28625" [[package]] name = "flate2" -version = "0.2.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "miniz-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "fnv" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "fontconfig" version = "0.1.0" -source = "git+https://github.com/servo/rust-fontconfig#91195bd29daa9280680bb28ba556821d504a17c6" +source = "git+https://github.com/servo/rust-fontconfig#7839e5adcb4d6da3cefe2256f5071ac0203b9206" dependencies = [ "fontconfig-sys 2.11.1 (git+https://github.com/servo/libfontconfig)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "fontconfig-sys" version = "2.11.1" -source = "git+https://github.com/servo/libfontconfig#adc60cacbca697123f4535ce2ff07619ec013cec" +source = "git+https://github.com/servo/libfontconfig#ce4a38633dc649b95c9b4935c0cce53e76d8b46a" dependencies = [ "expat-sys 2.1.0 (git+https://github.com/servo/libexpat)", "freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)", @@ -288,22 +309,22 @@ name = "freetype" version = "0.1.0" source = "git+https://github.com/servo/rust-freetype#f256a9ac84893f0a183b8966de2a3a03d7552b8b" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "freetype-sys" version = "2.4.11" -source = "git+https://github.com/servo/libfreetype2#a488dfd86872bf9c163d54a7f73a5dc4d3c4fd9e" +source = "git+https://github.com/servo/libfreetype2#50c1cf412d87f20ccbb940e39a14a38ae7cbb512" [[package]] name = "gcc" -version = "0.3.1" -source = "git+https://github.com/alexcrichton/gcc-rs#564247d019449ba46f25f64ffdefade5968b6ae7" +version = "0.3.4" +source = "git+https://github.com/alexcrichton/gcc-rs#9596a4e6da55e5ddbad6fd645b9727aae6b545ef" [[package]] name = "gcc" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -317,9 +338,12 @@ dependencies = [ [[package]] name = "geom" version = "0.1.0" -source = "git+https://github.com/servo/rust-geom#c47fc0f927b6d6e5543fe3b5445c86810831dce1" +source = "git+https://github.com/servo/rust-geom#c4bdb1ef8f4915ae636eb752b103f69246b50304" dependencies = [ - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -336,146 +360,201 @@ dependencies = [ "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "harfbuzz 0.1.0 (git+https://github.com/servo/rust-harfbuzz)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "profile 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "profile_traits 0.0.1", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "gl" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "gl_common" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gl_generator" -version = "0.0.19" +version = "0.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "xml-rs 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "gleam" version = "0.0.1" -source = "git+https://github.com/servo/gleam#70c5f2ea3ef3602277b7c380c24b504e42338056" +source = "git+https://github.com/servo/gleam#f2edabf2ef0474bb270b107e5e68c2727c4a422d" dependencies = [ "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glutin" -version = "0.0.7" -source = "git+https://github.com/servo/glutin?branch=servo#0feab4842c5b229bfe88739d2c526d03c198fd33" +version = "0.0.26" +source = "git+https://github.com/servo/glutin?branch=servo#c1af76550f311e3da7a08d393b4ea9805cb61a7b" dependencies = [ - "android_glue 0.0.1 (git+https://github.com/tomaka/android-rs-glue)", - "cocoa 0.1.1 (git+https://github.com/servo/rust-cocoa)", - "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", - "core_graphics 0.1.0 (git+https://github.com/servo/rust-core-graphics)", + "android_glue 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_cocoa 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_core_foundation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "glutin_core_graphics 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "osmesa-sys 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "user32-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", + "x11 0.0.32 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_cocoa" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_core_foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "glutin_core_graphics" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "glutin_core_foundation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "glx" version = "0.0.1" -source = "git+https://github.com/servo/rust-glx#f2103861d38076ef5e01a8c2f58df1e79ca12f41" +source = "git+https://github.com/servo/rust-glx#60ac0aee2438eadb4b51ddc8eac6fc4b5ca8e447" dependencies = [ "gl_common 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gl_generator 0.0.19 (registry+https://github.com/rust-lang/crates.io-index)", + "gl_generator 0.0.24 (registry+https://github.com/rust-lang/crates.io-index)", "khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "harfbuzz" version = "0.1.0" -source = "git+https://github.com/servo/rust-harfbuzz#cc875777f820da0b85f39c2359d9609650b16600" +source = "git+https://github.com/servo/rust-harfbuzz#33b6fd019fc04e46dd5fe15a5faf8efb1a9a0128" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "html5ever" version = "0.0.0" -source = "git+https://github.com/servo/html5ever#8bad1ca8e1e05a7972be80acc64efd729ffdc8a5" +source = "git+https://github.com/servo/html5ever#74dc5f5a36451cfbe789488b20d51bef97c63898" dependencies = [ "html5ever_macros 0.0.0 (git+https://github.com/servo/html5ever)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mac 0.0.2 (git+https://github.com/reem/rust-mac)", - "phf 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_macros 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_macros 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "html5ever_macros" version = "0.0.0" -source = "git+https://github.com/servo/html5ever#8bad1ca8e1e05a7972be80acc64efd729ffdc8a5" +source = "git+https://github.com/servo/html5ever#74dc5f5a36451cfbe789488b20d51bef97c63898" dependencies = [ "mac 0.0.2 (git+https://github.com/reem/rust-mac)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "httparse" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "hyper" -version = "0.3.0" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "httparse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "typeable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "io_surface" version = "0.1.0" -source = "git+https://github.com/servo/rust-io-surface#f380a03a9b0e0316866d4320d46a78dda87efbec" +source = "git+https://github.com/servo/rust-io-surface#ab0ebd4ea6dd953c1581d9486b9e80ecf3c7577d" dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "js" version = "0.1.0" -source = "git+https://github.com/servo/rust-mozjs#402b7b2db8816ffeccacfa9a8d316f4487e96ba0" +source = "git+https://github.com/servo/rust-mozjs#30a1ad31d1ee47a8e4e1ef582e793badfb405fa0" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -494,7 +573,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "layers" version = "0.1.0" -source = "git+https://github.com/servo/rust-layers#df3a14d00260c8ab506565972555931444361ff8" +source = "git+https://github.com/servo/rust-layers#018259e838c3842032010829feeaba316e577376" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", @@ -504,8 +583,10 @@ dependencies = [ "gleam 0.0.1 (git+https://github.com/servo/gleam)", "glx 0.0.1 (git+https://github.com/servo/rust-glx)", "io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "skia 0.0.20130412 (git+https://github.com/servo/skia?branch=upstream-2014-06-16)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "skia 0.0.20130412 (git+https://github.com/servo/skia)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] @@ -516,26 +597,26 @@ dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "canvas 0.0.1", - "clock_ticks 0.0.4 (git+https://github.com/tomaka/clock_ticks)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "clock_ticks 0.0.5 (git+https://github.com/tomaka/clock_ticks)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "layout_traits 0.0.1", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "profile 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "profile_traits 0.0.1", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script 0.0.1", "script_traits 0.0.1", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -546,34 +627,42 @@ dependencies = [ "gfx 0.0.1", "msg 0.0.1", "net_traits 0.0.1", - "profile 0.0.1", + "profile_traits 0.0.1", "script_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] name = "lazy_static" -version = "0.1.8" -source = "git+https://github.com/Kimundi/lazy-static.rs#56b4be4141d3c58273cf5ee1d2e956e2f22248b9" +version = "0.1.10" +source = "git+https://github.com/Kimundi/lazy-static.rs#1366fce0e706ee8530c88b80039946c4c7e1f993" + +[[package]] +name = "lazy_static" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libressl-pnacl-sys" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "pnacl-build-helper 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pnacl-build-helper 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.2.5" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "mac" @@ -585,7 +674,7 @@ name = "malloc_buf" version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -598,21 +687,21 @@ name = "mime" version = "0.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "miniz-sys" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "mod_path" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -628,11 +717,11 @@ dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "core_foundation 0.1.0 (git+https://github.com/servo/rust-core-foundation)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "io_surface 0.1.0 (git+https://github.com/servo/rust-io-surface)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", "style 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] @@ -641,19 +730,18 @@ dependencies = [ name = "net" version = "0.0.1" dependencies = [ - "cookie 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cookie 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "net_traits 0.0.1", - "openssl 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "profile 0.0.1", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "regex_macros 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "regex_macros 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -662,90 +750,119 @@ name = "net_traits" version = "0.0.1" dependencies = [ "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "profile 0.0.1", "stb_image 0.1.0 (git+https://github.com/servo/rust-stb-image)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "num" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "num_cpus" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "objc" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_buf 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "offscreen_gl_context" version = "0.0.1" -source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#9547d416019b15e0e59dc5176f5b1a14e14b44ca" +source = "git+https://github.com/servo/rust-offscreen-rendering-context#9ef802439467c287178afe46c5dd7adec13993eb" dependencies = [ "cgl 0.0.1 (git+https://github.com/servo/rust-cgl)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gleam 0.0.1 (git+https://github.com/servo/gleam)", "glx 0.0.1 (git+https://github.com/servo/rust-glx)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "xlib 0.1.0 (git+https://github.com/servo/rust-xlib)", ] [[package]] name = "openssl" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "openssl-sys" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libressl-pnacl-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libressl-pnacl-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "osmesa-sys" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gl 0.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "debug-builders 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_generator" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_macros" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "phf_generator 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_shared 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_generator 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_shared 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "phf_shared" -version = "0.6.12" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pkg-config" -version = "0.3.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -757,60 +874,76 @@ dependencies = [ [[package]] name = "pnacl-build-helper" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "png" version = "0.1.0" -source = "git+https://github.com/servo/rust-png#1d9c59c97598014860077f372443ae98b35ff4d9" +source = "git+https://github.com/servo/rust-png#811e4d339441dd34fb087fc895e1619ba882933f" dependencies = [ - "gcc 0.3.1 (git+https://github.com/alexcrichton/gcc-rs)", + "gcc 0.3.4 (git+https://github.com/alexcrichton/gcc-rs)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "png-sys 1.6.16 (git+https://github.com/servo/rust-png)", ] [[package]] name = "png-sys" version = "1.6.16" -source = "git+https://github.com/servo/rust-png#1d9c59c97598014860077f372443ae98b35ff4d9" +source = "git+https://github.com/servo/rust-png#811e4d339441dd34fb087fc895e1619ba882933f" [[package]] name = "profile" version = "0.0.1" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "profile_traits 0.0.1", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", "task_info 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] [[package]] +name = "profile_traits" +version = "0.0.1" +dependencies = [ + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "quicksort" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "rand" -version = "0.1.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "0.1.18" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "regex_macros" -version = "0.1.11" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-serialize" -version = "0.3.4" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -819,30 +952,32 @@ version = "0.0.1" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "canvas 0.0.1", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "gfx 0.0.1", "html5ever 0.0.0 (git+https://github.com/servo/html5ever)", - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "js 0.1.0 (git+https://github.com/servo/rust-mozjs)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", - "profile 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "profile_traits 0.0.1", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", "style 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "unicase 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.1.11 (git+https://github.com/rust-lang/uuid)", + "uuid 0.1.16 (git+https://github.com/rust-lang/uuid)", "webdriver_traits 0.0.1", ] @@ -852,10 +987,10 @@ version = "0.0.1" dependencies = [ "devtools_traits 0.0.1", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_traits 0.0.1", ] @@ -863,11 +998,13 @@ dependencies = [ [[package]] name = "selectors" version = "0.1.0" -source = "git+https://github.com/servo/rust-selectors#0d7d846090c21d71ebb1bc17921806933a38f52b" +source = "git+https://github.com/servo/rust-selectors#1fda09bf0c59acfcb697f71b38dad22108b3d27a" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "quicksort 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", ] @@ -887,9 +1024,10 @@ dependencies = [ "net_traits 0.0.1", "png 0.1.0 (git+https://github.com/servo/rust-png)", "profile 0.0.1", + "profile_traits 0.0.1", "script 0.0.1", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "webdriver_server 0.0.1", ] @@ -897,35 +1035,43 @@ dependencies = [ [[package]] name = "skia" version = "0.0.20130412" -source = "git+https://github.com/servo/skia?branch=upstream-2014-06-16#db5b5393c83da9ff5b8fb2076481e98fb2b659f2" +source = "git+https://github.com/servo/skia#d60e6753b2b23b3b4ff787b505da56cfad0335c9" dependencies = [ "expat-sys 2.1.0 (git+https://github.com/servo/libexpat)", "freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)", ] [[package]] +name = "smallvec" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "stb_image" version = "0.1.0" -source = "git+https://github.com/servo/rust-stb-image#b683cc9e7ba52a1bb65361347da0df1bc9c5e854" +source = "git+https://github.com/servo/rust-stb-image#f6c411b381322609a321b7fb5f948b2365973604" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "string_cache" version = "0.0.0" -source = "git+https://github.com/servo/string-cache#124cb555651bd7838c5c6dc4788bc4f5350947a9" +source = "git+https://github.com/servo/string-cache#385c4ac197742e355631209be3613c8a9c7594b6" dependencies = [ - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", - "phf 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "phf_macros 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", + "phf 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "phf_macros 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", ] [[package]] name = "string_cache_plugin" version = "0.0.0" -source = "git+https://github.com/servo/string-cache#124cb555651bd7838c5c6dc4788bc4f5350947a9" +source = "git+https://github.com/servo/string-cache#385c4ac197742e355631209be3613c8a9c7594b6" dependencies = [ - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", "mac 0.0.2 (git+https://github.com/reem/rust-mac)", ] @@ -934,19 +1080,18 @@ name = "style" version = "0.0.1" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", - "encoding 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "mod_path 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "mod_path 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -955,36 +1100,49 @@ name = "task_info" version = "0.0.1" [[package]] +name = "tempdir" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "tenacious" version = "0.0.1" source = "git+https://github.com/Manishearth/rust-tenacious.git#d61782e70005a9f0cdf66f366d4ec88fc563ea1e" [[package]] -name = "text_writer" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] name = "time" -version = "0.1.19" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] +name = "traitobject" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "typeable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "unicase" -version = "0.0.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "url" -version = "0.2.23" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1001,49 +1159,52 @@ version = "0.0.1" dependencies = [ "azure 0.1.0 (git+https://github.com/servo/rust-azure)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.2.0 (git+https://github.com/servo/rust-cssparser)", + "cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "geom 0.1.0 (git+https://github.com/servo/rust-geom)", "layers 0.1.0 (git+https://github.com/servo/rust-layers)", - "lazy_static 0.1.8 (git+https://github.com/Kimundi/lazy-static.rs)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.10 (git+https://github.com/Kimundi/lazy-static.rs)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "num 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.1.0 (git+https://github.com/servo/rust-selectors)", + "smallvec 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.0.0 (git+https://github.com/servo/string-cache)", "string_cache_plugin 0.0.0 (git+https://github.com/servo/string-cache)", - "text_writer 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "uuid" -version = "0.1.11" -source = "git+https://github.com/rust-lang/uuid#c7862508f84b114d22bb68ec01202eafc50a81b2" +version = "0.1.16" +source = "git+https://github.com/rust-lang/uuid#7c767220c41746d346c8195e31ddf090ac6568e7" dependencies = [ - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "uuid" -version = "0.1.11" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webdriver" -version = "0.0.1" -source = "git+https://github.com/jgraham/webdriver-rust.git#fa625e3cf8fdb39b503c1cc902506df3a1d1c9de" +version = "0.1.0" +source = "git+https://github.com/jgraham/webdriver-rust.git#66547888f47bae7e938a92af4586276479343216" dependencies = [ - "hyper 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1051,11 +1212,11 @@ name = "webdriver_server" version = "0.0.1" dependencies = [ "msg 0.0.1", - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "url 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "webdriver 0.0.1 (git+https://github.com/jgraham/webdriver-rust.git)", + "uuid 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", + "webdriver 0.1.0 (git+https://github.com/jgraham/webdriver-rust.git)", "webdriver_traits 0.0.1", ] @@ -1063,7 +1224,7 @@ dependencies = [ name = "webdriver_traits" version = "0.0.1" dependencies = [ - "rustc-serialize 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1071,7 +1232,15 @@ name = "winapi" version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "x11" +version = "0.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1080,12 +1249,12 @@ version = "0.1.0" source = "git+https://github.com/servo/rust-xlib#1a0f3d48fbebf96e2d1bf83ac71309b27f49e0c7" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "xml-rs" -version = "0.1.20" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/gonk/Cargo.toml b/ports/gonk/Cargo.toml index 5ed55793d43..cf681e7edf7 100644 --- a/ports/gonk/Cargo.toml +++ b/ports/gonk/Cargo.toml @@ -57,4 +57,5 @@ git = "https://github.com/servo/gleam" [dependencies] url = "0.2.16" time = "0.1.17" +errno = "*" libc = "*" diff --git a/ports/gonk/src/input.rs b/ports/gonk/src/input.rs index 54e54b87784..bac48d43162 100644 --- a/ports/gonk/src/input.rs +++ b/ports/gonk/src/input.rs @@ -8,9 +8,7 @@ use std::path::Path; use std::mem::size_of; use std::mem::transmute; use std::mem::zeroed; -use std::os::errno; -use std::os::unix::AsRawFd; -use std::num::Float; +use std::os::unix::io::AsRawFd; use std::fs::File; use std::thread; use std::sync::mpsc::Sender; @@ -18,6 +16,7 @@ use std::io::Read; use geom::point::TypedPoint2D; +use errno::errno; use libc::c_int; use libc::c_long; use libc::time_t; @@ -135,7 +134,7 @@ fn read_input_device(device_path: &Path, let mut last_dist: f32 = 0f32; let mut touch_count: i32 = 0; - let mut current_slot: uint = 0; + let mut current_slot: usize = 0; // XXX: Need to use the real dimensions of the screen let screen_dist = dist(0, 480, 854, 0); loop { @@ -154,7 +153,7 @@ fn read_input_device(device_path: &Path, let count = read / size_of::<linux_input_event>(); let events: *mut linux_input_event = unsafe { transmute(buf.as_mut_ptr()) }; let mut tracking_updated = false; - for idx in 0..(count as int) { + for idx in 0..(count as isize) { let event: &linux_input_event = unsafe { transmute(events.offset(idx)) }; match (event.evt_type, event.code) { (EV_SYN, EV_REPORT) => { @@ -204,8 +203,8 @@ fn read_input_device(device_path: &Path, }, (EV_SYN, _) => println!("Unknown SYN code {}", event.code), (EV_ABS, ABS_MT_SLOT) => { - if (event.value as uint) < slots.len() { - current_slot = event.value as uint; + if (event.value as usize) < slots.len() { + current_slot = event.value as usize; } else { println!("Invalid slot! {}", event.value); } diff --git a/ports/gonk/src/lib.rs b/ports/gonk/src/lib.rs index 6d4a2d517bb..d7a85e4dde2 100644 --- a/ports/gonk/src/lib.rs +++ b/ports/gonk/src/lib.rs @@ -4,8 +4,7 @@ #![feature(thread_local)] #![feature(box_syntax)] -#![feature(int_uint)] -#![feature(path, rustc_private)] +#![feature(rustc_private)] // For FFI #![allow(non_snake_case, dead_code)] diff --git a/ports/gonk/src/main.rs b/ports/gonk/src/main.rs index 5a6af9db9ef..335fdd361b6 100644 --- a/ports/gonk/src/main.rs +++ b/ports/gonk/src/main.rs @@ -6,8 +6,7 @@ #![deny(unused_variables)] #![feature(box_syntax)] -#![feature(int_uint)] -#![feature(core, os, path, io, std_misc)] +#![feature(convert)] // For FFI #![allow(non_snake_case, dead_code)] @@ -27,6 +26,7 @@ extern crate servo; extern crate time; extern crate util; +extern crate errno; extern crate compositing; extern crate script_traits; diff --git a/ports/gonk/src/window.rs b/ports/gonk/src/window.rs index 6c3258972a6..621804640bc 100644 --- a/ports/gonk/src/window.rs +++ b/ports/gonk/src/window.rs @@ -60,7 +60,7 @@ pub struct native_handle { pub struct ANativeBase { magic: u32, version: u32, - reserved: [int; 4], + reserved: [isize; 4], incRef: extern fn(*mut ANativeBase), decRef: extern fn(*mut ANativeBase), } @@ -86,7 +86,7 @@ pub struct ANativeWindow { maxSwapInterval: c_int, xdpi: f32, ydpi: f32, - oem: [int; 4], + oem: [isize; 4], setSwapInterval: extern fn(*mut ANativeWindow, c_int) -> c_int, //dequeueBuffer_DEPRECATED: extern fn(*mut ANativeWindow, *mut *mut ANativeWindowBuffer) -> c_int, //lockBuffer_DEPRECATED: extern fn(*mut ANativeWindow, *mut ANativeWindowBuffer) -> c_int, @@ -342,7 +342,7 @@ extern fn dequeueBuffer(base: *mut ANativeWindow, buf: *mut *mut ANativeWindowBu unsafe { let window: &mut GonkNativeWindow = transmute(base); for idx in 0..window.bufs.len() { - if idx == window.last_idx as uint { + if idx == window.last_idx as usize { continue; } match window.bufs[idx] { @@ -695,7 +695,7 @@ impl Window { egl::EGL_ALPHA_SIZE, 0, egl::EGL_NONE, 0]; - let mut config: EGLConfig = unsafe { transmute(0i) }; + let mut config: EGLConfig = unsafe { transmute(0isize) }; let mut num_config: EGLint = 0; let ret2 = unsafe { diff --git a/rust-snapshot-hash b/rust-snapshot-hash index edeea6b61f2..377c6efc0b2 100644 --- a/rust-snapshot-hash +++ b/rust-snapshot-hash @@ -1 +1 @@ -d3c49d2140fc65e8bb7d7cf25bfe74dda6ce5ecf/rustc-1.0.0-dev +551a74dddd84cf01440ee84148ebd18bc68bd7c8/rustc-1.1.0-dev diff --git a/support/android-rs-glue b/support/android-rs-glue -Subproject 34f588aace4d05ce42f4ca605d5470df8fdd236 +Subproject 10116eb3af332f9565e0fb803e600511bb585d6 diff --git a/tests/reftest.rs b/tests/reftest.rs index 4ce8a96cdcb..43f187cb684 100644 --- a/tests/reftest.rs +++ b/tests/reftest.rs @@ -7,7 +7,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(collections, exit_status, fs_walk, io, old_io, path, path_ext, std_misc, test)] +#![feature(collections, exit_status, fs_walk, io, path, path_ext, slice_patterns, std_misc, test)] #[macro_use] extern crate bitflags; extern crate png; extern crate test; @@ -16,8 +16,7 @@ extern crate url; use std::env; use std::ffi::OsStr; use std::fs::{PathExt, File, walk_dir}; -use std::io::Read; -use std::old_io::{Reader, IoResult}; +use std::io::{self, Read, Result}; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; use std::thunk::Thunk; @@ -72,7 +71,7 @@ fn main() { let maybe_extension = file.extension(); match maybe_extension { Some(extension) => { - if extension == OsStr::from_str("list") && file.is_file() { + if extension == OsStr::new("list") && file.is_file() { let mut tests = parse_lists(&file, servo_args, render_mode, all_tests.len()); println!("\t{} [{} tests]", file.display(), tests.len()); all_tests.append(&mut tests); @@ -102,7 +101,7 @@ fn main() { } fn run(test_opts: TestOpts, all_tests: Vec<TestDescAndFn>, - servo_args: Vec<String>) -> IoResult<bool> { + servo_args: Vec<String>) -> io::Result<bool> { // Verify that we're passing in valid servo arguments. Otherwise, servo // will exit before we've run any tests, and it will appear to us as if // all the tests are failing. @@ -238,7 +237,7 @@ fn make_test(reftest: Reftest) -> TestDescAndFn { ignore: false, should_panic: ShouldPanic::No, }, - testfn: DynTestFn(Thunk::new(move || { + testfn: DynTestFn(Box::new(move || { check_reftest(reftest); })), } diff --git a/tests/unit/net/cookie.rs b/tests/unit/net/cookie.rs index afdbd05334b..edf93ba2e05 100644 --- a/tests/unit/net/cookie.rs +++ b/tests/unit/net/cookie.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -extern crate "cookie" as cookie_rs; +extern crate cookie as cookie_rs; use net::cookie::Cookie; use net::cookie_storage::CookieStorage; diff --git a/tests/unit/net/lib.rs b/tests/unit/net/lib.rs index 959133da74f..29d04d2ee65 100644 --- a/tests/unit/net/lib.rs +++ b/tests/unit/net/lib.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#![cfg_attr(test, feature(net, alloc, path, io))] +#![cfg_attr(test, feature(alloc))] extern crate net; extern crate net_traits; diff --git a/tests/unit/net/mime_classifier.rs b/tests/unit/net/mime_classifier.rs index 8bba57290c5..c44c3c1103a 100644 --- a/tests/unit/net/mime_classifier.rs +++ b/tests/unit/net/mime_classifier.rs @@ -23,7 +23,7 @@ fn read_file(path: &path::Path) -> io::Result<Vec<u8>> { fn test_sniff_mp4_matcher() { let matcher = Mp4Matcher; - let p = PathBuf::new("parsable_mime/video/mp4/test.mp4"); + let p = PathBuf::from("parsable_mime/video/mp4/test.mp4"); let read_result = read_file(&p); match read_result { @@ -43,7 +43,7 @@ fn test_sniff_full(filename_orig: &path::Path,type_string: &str,subtype_string: let current_working_directory = env::current_dir().unwrap(); println!("The current directory is {}", current_working_directory.display()); - let mut filename = PathBuf::new("parsable_mime/"); + let mut filename = PathBuf::from("parsable_mime/"); filename.push(filename_orig); let classifier = MIMEClassifier::new(); @@ -73,7 +73,7 @@ fn test_sniff_full(filename_orig: &path::Path,type_string: &str,subtype_string: #[cfg(test)] fn test_sniff_classification(file: &str,type_string: &str,subtype_string: &str, supplied_type: Option<(&'static str,&'static str)>){ - let mut x = PathBuf::new("./"); + let mut x = PathBuf::from("./"); x.push(type_string); x.push(subtype_string); x.push(file); @@ -181,19 +181,19 @@ fn test_sniff_vsn_ms_fontobject() { #[test] #[should_panic] fn test_sniff_true_type() { - test_sniff_full(&PathBuf::new("unknown/true_type.ttf"), "(TrueType)", "", None); + test_sniff_full(&PathBuf::from("unknown/true_type.ttf"), "(TrueType)", "", None); } #[test] #[should_panic] fn test_sniff_open_type() { - test_sniff_full(&PathBuf::new("unknown/open_type"), "(OpenType)", "", None); + test_sniff_full(&PathBuf::from("unknown/open_type"), "(OpenType)", "", None); } #[test] #[should_panic] fn test_sniff_true_type_collection() { - test_sniff_full(&PathBuf::new("unknown/true_type_collection.ttc"), "(TrueType Collection)", "", None); + test_sniff_full(&PathBuf::from("unknown/true_type_collection.ttc"), "(TrueType Collection)", "", None); } #[test] @@ -435,10 +435,10 @@ fn test_sniff_utf_8_bom() { #[test] fn test_sniff_rss_feed() { - test_sniff_full(&PathBuf::new("text/xml/feed.rss"), "application", "rss+xml", Some(("text", "html"))); + test_sniff_full(&PathBuf::from("text/xml/feed.rss"), "application", "rss+xml", Some(("text", "html"))); } #[test] fn test_sniff_atom_feed() { - test_sniff_full(&PathBuf::new("text/xml/feed.atom"), "application", "atom+xml", Some(("text", "html"))); + test_sniff_full(&PathBuf::from("text/xml/feed.atom"), "application", "atom+xml", Some(("text", "html"))); } diff --git a/tests/unit/net/resource_task.rs b/tests/unit/net/resource_task.rs index d9ef7cde4d3..986c11b341e 100644 --- a/tests/unit/net/resource_task.rs +++ b/tests/unit/net/resource_task.rs @@ -167,7 +167,7 @@ fn test_replace_hosts() { //Start the TCP server let listener = TcpListener::bind("127.0.0.1:0").unwrap(); - let port = listener.socket_addr().unwrap().port(); + let port = listener.local_addr().unwrap().port(); //Start the resource task and make a request to our TCP server let resource_task = new_resource_task(None); diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml index 64e34f2bd03..8f36c8890b5 100644 --- a/tests/unit/style/Cargo.toml +++ b/tests/unit/style/Cargo.toml @@ -26,8 +26,6 @@ git = "https://github.com/servo/rust-geom" [dependencies.selectors] git = "https://github.com/servo/rust-selectors" -[dependencies.cssparser] -git = "https://github.com/servo/rust-cssparser" - [dependencies] url = "*" +cssparser = "0.3.1" diff --git a/tests/unit/util/vec.rs b/tests/unit/util/vec.rs index 815e0500918..d8f259aac19 100644 --- a/tests/unit/util/vec.rs +++ b/tests/unit/util/vec.rs @@ -35,12 +35,12 @@ fn test_match<T: PartialEq>(b: &T, a: Option<&T>) -> bool { #[test] fn should_find_all_elements() { - let arr_odd = [1u32, 2, 4, 6, 7, 8, 9]; - let arr_even = [1u32, 2, 5, 6, 7, 8, 9, 42]; - let arr_double = [1u32, 1, 2, 2, 6, 8, 22]; - let arr_one = [234986325u32]; - let arr_two = [3044u32, 8393]; - let arr_three = [12u32, 23, 34]; + let arr_odd = [1_i32, 2, 4, 6, 7, 8, 9]; + let arr_even = [1_i32, 2, 5, 6, 7, 8, 9, 42]; + let arr_double = [1_i32, 1, 2, 2, 6, 8, 22]; + let arr_one = [234986325_i32]; + let arr_two = [3044_i32, 8393]; + let arr_three = [12_i32, 23, 34]; test_find_all_elems(&arr_odd); test_find_all_elems(&arr_even); @@ -52,12 +52,12 @@ fn should_find_all_elements() { #[test] fn should_not_find_missing_elements() { - let arr_odd = [1u32, 2, 4, 6, 7, 8, 9]; - let arr_even = [1u32, 2, 5, 6, 7, 8, 9, 42]; - let arr_double = [1u32, 1, 2, 2, 6, 8, 22]; - let arr_one = [234986325u32]; - let arr_two = [3044u32, 8393]; - let arr_three = [12u32, 23, 34]; + let arr_odd = [1_i32, 2, 4, 6, 7, 8, 9]; + let arr_even = [1_i32, 2, 5, 6, 7, 8, 9, 42]; + let arr_double = [1_i32, 1, 2, 2, 6, 8, 22]; + let arr_one = [234986325_i32]; + let arr_two = [3044_i32, 8393]; + let arr_three = [12_i32, 23, 34]; test_miss_all_elems(&arr_odd, &[-22, 0, 3, 5, 34938, 10, 11, 12]); test_miss_all_elems(&arr_even, &[-1, 0, 3, 34938, 10, 11, 12]); diff --git a/tests/wpt/metadata/encoding/api-replacement-encodings.html.ini b/tests/wpt/metadata/encoding/api-replacement-encodings.html.ini deleted file mode 100644 index 99468e76336..00000000000 --- a/tests/wpt/metadata/encoding/api-replacement-encodings.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[api-replacement-encodings.html] - type: testharness - [Label for "replacement" should be rejected by API: hz-gb-2312] - expected: FAIL - diff --git a/tests/wpt/metadata/encoding/textdecoder-labels.html.ini b/tests/wpt/metadata/encoding/textdecoder-labels.html.ini deleted file mode 100644 index 324cc276a86..00000000000 --- a/tests/wpt/metadata/encoding/textdecoder-labels.html.ini +++ /dev/null @@ -1,530 +0,0 @@ -[textdecoder-labels.html] - type: testharness - ["chinese" => "gbk"] - expected: FAIL - - [" chinese" => "gbk"] - expected: FAIL - - ["chinese " => "gbk"] - expected: FAIL - - [" chinese " => "gbk"] - expected: FAIL - - ["\\tchinese" => "gbk"] - expected: FAIL - - ["chinese\\t" => "gbk"] - expected: FAIL - - ["\\tchinese\\t" => "gbk"] - expected: FAIL - - ["\\nchinese" => "gbk"] - expected: FAIL - - ["chinese\\n" => "gbk"] - expected: FAIL - - ["\\nchinese\\n" => "gbk"] - expected: FAIL - - ["\\fchinese" => "gbk"] - expected: FAIL - - ["chinese\\f" => "gbk"] - expected: FAIL - - ["\\fchinese\\f" => "gbk"] - expected: FAIL - - ["\\rchinese" => "gbk"] - expected: FAIL - - ["chinese\\r" => "gbk"] - expected: FAIL - - ["\\rchinese\\r" => "gbk"] - expected: FAIL - - ["csgb2312" => "gbk"] - expected: FAIL - - [" csgb2312" => "gbk"] - expected: FAIL - - ["csgb2312 " => "gbk"] - expected: FAIL - - [" csgb2312 " => "gbk"] - expected: FAIL - - ["\\tcsgb2312" => "gbk"] - expected: FAIL - - ["csgb2312\\t" => "gbk"] - expected: FAIL - - ["\\tcsgb2312\\t" => "gbk"] - expected: FAIL - - ["\\ncsgb2312" => "gbk"] - expected: FAIL - - ["csgb2312\\n" => "gbk"] - expected: FAIL - - ["\\ncsgb2312\\n" => "gbk"] - expected: FAIL - - ["\\fcsgb2312" => "gbk"] - expected: FAIL - - ["csgb2312\\f" => "gbk"] - expected: FAIL - - ["\\fcsgb2312\\f" => "gbk"] - expected: FAIL - - ["\\rcsgb2312" => "gbk"] - expected: FAIL - - ["csgb2312\\r" => "gbk"] - expected: FAIL - - ["\\rcsgb2312\\r" => "gbk"] - expected: FAIL - - ["csiso58gb231280" => "gbk"] - expected: FAIL - - [" csiso58gb231280" => "gbk"] - expected: FAIL - - ["csiso58gb231280 " => "gbk"] - expected: FAIL - - [" csiso58gb231280 " => "gbk"] - expected: FAIL - - ["\\tcsiso58gb231280" => "gbk"] - expected: FAIL - - ["csiso58gb231280\\t" => "gbk"] - expected: FAIL - - ["\\tcsiso58gb231280\\t" => "gbk"] - expected: FAIL - - ["\\ncsiso58gb231280" => "gbk"] - expected: FAIL - - ["csiso58gb231280\\n" => "gbk"] - expected: FAIL - - ["\\ncsiso58gb231280\\n" => "gbk"] - expected: FAIL - - ["\\fcsiso58gb231280" => "gbk"] - expected: FAIL - - ["csiso58gb231280\\f" => "gbk"] - expected: FAIL - - ["\\fcsiso58gb231280\\f" => "gbk"] - expected: FAIL - - ["\\rcsiso58gb231280" => "gbk"] - expected: FAIL - - ["csiso58gb231280\\r" => "gbk"] - expected: FAIL - - ["\\rcsiso58gb231280\\r" => "gbk"] - expected: FAIL - - ["gb2312" => "gbk"] - expected: FAIL - - [" gb2312" => "gbk"] - expected: FAIL - - ["gb2312 " => "gbk"] - expected: FAIL - - [" gb2312 " => "gbk"] - expected: FAIL - - ["\\tgb2312" => "gbk"] - expected: FAIL - - ["gb2312\\t" => "gbk"] - expected: FAIL - - ["\\tgb2312\\t" => "gbk"] - expected: FAIL - - ["\\ngb2312" => "gbk"] - expected: FAIL - - ["gb2312\\n" => "gbk"] - expected: FAIL - - ["\\ngb2312\\n" => "gbk"] - expected: FAIL - - ["\\fgb2312" => "gbk"] - expected: FAIL - - ["gb2312\\f" => "gbk"] - expected: FAIL - - ["\\fgb2312\\f" => "gbk"] - expected: FAIL - - ["\\rgb2312" => "gbk"] - expected: FAIL - - ["gb2312\\r" => "gbk"] - expected: FAIL - - ["\\rgb2312\\r" => "gbk"] - expected: FAIL - - ["gb_2312" => "gbk"] - expected: FAIL - - [" gb_2312" => "gbk"] - expected: FAIL - - ["gb_2312 " => "gbk"] - expected: FAIL - - [" gb_2312 " => "gbk"] - expected: FAIL - - ["\\tgb_2312" => "gbk"] - expected: FAIL - - ["gb_2312\\t" => "gbk"] - expected: FAIL - - ["\\tgb_2312\\t" => "gbk"] - expected: FAIL - - ["\\ngb_2312" => "gbk"] - expected: FAIL - - ["gb_2312\\n" => "gbk"] - expected: FAIL - - ["\\ngb_2312\\n" => "gbk"] - expected: FAIL - - ["\\fgb_2312" => "gbk"] - expected: FAIL - - ["gb_2312\\f" => "gbk"] - expected: FAIL - - ["\\fgb_2312\\f" => "gbk"] - expected: FAIL - - ["\\rgb_2312" => "gbk"] - expected: FAIL - - ["gb_2312\\r" => "gbk"] - expected: FAIL - - ["\\rgb_2312\\r" => "gbk"] - expected: FAIL - - ["gb_2312-80" => "gbk"] - expected: FAIL - - [" gb_2312-80" => "gbk"] - expected: FAIL - - ["gb_2312-80 " => "gbk"] - expected: FAIL - - [" gb_2312-80 " => "gbk"] - expected: FAIL - - ["\\tgb_2312-80" => "gbk"] - expected: FAIL - - ["gb_2312-80\\t" => "gbk"] - expected: FAIL - - ["\\tgb_2312-80\\t" => "gbk"] - expected: FAIL - - ["\\ngb_2312-80" => "gbk"] - expected: FAIL - - ["gb_2312-80\\n" => "gbk"] - expected: FAIL - - ["\\ngb_2312-80\\n" => "gbk"] - expected: FAIL - - ["\\fgb_2312-80" => "gbk"] - expected: FAIL - - ["gb_2312-80\\f" => "gbk"] - expected: FAIL - - ["\\fgb_2312-80\\f" => "gbk"] - expected: FAIL - - ["\\rgb_2312-80" => "gbk"] - expected: FAIL - - ["gb_2312-80\\r" => "gbk"] - expected: FAIL - - ["\\rgb_2312-80\\r" => "gbk"] - expected: FAIL - - ["gbk" => "gbk"] - expected: FAIL - - [" gbk" => "gbk"] - expected: FAIL - - ["gbk " => "gbk"] - expected: FAIL - - [" gbk " => "gbk"] - expected: FAIL - - ["\\tgbk" => "gbk"] - expected: FAIL - - ["gbk\\t" => "gbk"] - expected: FAIL - - ["\\tgbk\\t" => "gbk"] - expected: FAIL - - ["\\ngbk" => "gbk"] - expected: FAIL - - ["gbk\\n" => "gbk"] - expected: FAIL - - ["\\ngbk\\n" => "gbk"] - expected: FAIL - - ["\\fgbk" => "gbk"] - expected: FAIL - - ["gbk\\f" => "gbk"] - expected: FAIL - - ["\\fgbk\\f" => "gbk"] - expected: FAIL - - ["\\rgbk" => "gbk"] - expected: FAIL - - ["gbk\\r" => "gbk"] - expected: FAIL - - ["\\rgbk\\r" => "gbk"] - expected: FAIL - - ["iso-ir-58" => "gbk"] - expected: FAIL - - [" iso-ir-58" => "gbk"] - expected: FAIL - - ["iso-ir-58 " => "gbk"] - expected: FAIL - - [" iso-ir-58 " => "gbk"] - expected: FAIL - - ["\\tiso-ir-58" => "gbk"] - expected: FAIL - - ["iso-ir-58\\t" => "gbk"] - expected: FAIL - - ["\\tiso-ir-58\\t" => "gbk"] - expected: FAIL - - ["\\niso-ir-58" => "gbk"] - expected: FAIL - - ["iso-ir-58\\n" => "gbk"] - expected: FAIL - - ["\\niso-ir-58\\n" => "gbk"] - expected: FAIL - - ["\\fiso-ir-58" => "gbk"] - expected: FAIL - - ["iso-ir-58\\f" => "gbk"] - expected: FAIL - - ["\\fiso-ir-58\\f" => "gbk"] - expected: FAIL - - ["\\riso-ir-58" => "gbk"] - expected: FAIL - - ["iso-ir-58\\r" => "gbk"] - expected: FAIL - - ["\\riso-ir-58\\r" => "gbk"] - expected: FAIL - - ["x-gbk" => "gbk"] - expected: FAIL - - [" x-gbk" => "gbk"] - expected: FAIL - - ["x-gbk " => "gbk"] - expected: FAIL - - [" x-gbk " => "gbk"] - expected: FAIL - - ["\\tx-gbk" => "gbk"] - expected: FAIL - - ["x-gbk\\t" => "gbk"] - expected: FAIL - - ["\\tx-gbk\\t" => "gbk"] - expected: FAIL - - ["\\nx-gbk" => "gbk"] - expected: FAIL - - ["x-gbk\\n" => "gbk"] - expected: FAIL - - ["\\nx-gbk\\n" => "gbk"] - expected: FAIL - - ["\\fx-gbk" => "gbk"] - expected: FAIL - - ["x-gbk\\f" => "gbk"] - expected: FAIL - - ["\\fx-gbk\\f" => "gbk"] - expected: FAIL - - ["\\rx-gbk" => "gbk"] - expected: FAIL - - ["x-gbk\\r" => "gbk"] - expected: FAIL - - ["\\rx-gbk\\r" => "gbk"] - expected: FAIL - - ["utf-16" => "utf-16le"] - expected: FAIL - - [" utf-16" => "utf-16le"] - expected: FAIL - - ["utf-16 " => "utf-16le"] - expected: FAIL - - [" utf-16 " => "utf-16le"] - expected: FAIL - - ["\\tutf-16" => "utf-16le"] - expected: FAIL - - ["utf-16\\t" => "utf-16le"] - expected: FAIL - - ["\\tutf-16\\t" => "utf-16le"] - expected: FAIL - - ["\\nutf-16" => "utf-16le"] - expected: FAIL - - ["utf-16\\n" => "utf-16le"] - expected: FAIL - - ["\\nutf-16\\n" => "utf-16le"] - expected: FAIL - - ["\\futf-16" => "utf-16le"] - expected: FAIL - - ["utf-16\\f" => "utf-16le"] - expected: FAIL - - ["\\futf-16\\f" => "utf-16le"] - expected: FAIL - - ["\\rutf-16" => "utf-16le"] - expected: FAIL - - ["utf-16\\r" => "utf-16le"] - expected: FAIL - - ["\\rutf-16\\r" => "utf-16le"] - expected: FAIL - - ["utf-16le" => "utf-16le"] - expected: FAIL - - [" utf-16le" => "utf-16le"] - expected: FAIL - - ["utf-16le " => "utf-16le"] - expected: FAIL - - [" utf-16le " => "utf-16le"] - expected: FAIL - - ["\\tutf-16le" => "utf-16le"] - expected: FAIL - - ["utf-16le\\t" => "utf-16le"] - expected: FAIL - - ["\\tutf-16le\\t" => "utf-16le"] - expected: FAIL - - ["\\nutf-16le" => "utf-16le"] - expected: FAIL - - ["utf-16le\\n" => "utf-16le"] - expected: FAIL - - ["\\nutf-16le\\n" => "utf-16le"] - expected: FAIL - - ["\\futf-16le" => "utf-16le"] - expected: FAIL - - ["utf-16le\\f" => "utf-16le"] - expected: FAIL - - ["\\futf-16le\\f" => "utf-16le"] - expected: FAIL - - ["\\rutf-16le" => "utf-16le"] - expected: FAIL - - ["utf-16le\\r" => "utf-16le"] - expected: FAIL - - ["\\rutf-16le\\r" => "utf-16le"] - expected: FAIL - diff --git a/tests/wpt/metadata/encoding/textencoder-constructor-non-utf.html.ini b/tests/wpt/metadata/encoding/textencoder-constructor-non-utf.html.ini deleted file mode 100644 index d186734577b..00000000000 --- a/tests/wpt/metadata/encoding/textencoder-constructor-non-utf.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[textencoder-constructor-non-utf.html] - type: testharness - [Non-UTF encodings supported only for decode, not encode: gbk] - expected: FAIL - - [UTF encodings are supported for encode and decode: utf-16le] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini index c2b01ccff71..6dedfeadca1 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/update-the-source-set.html.ini @@ -66,18 +66,6 @@ [<picture><span><source srcset="data:,b"></span><img src="data:,a" data-expect="data:,a"></picture>] expected: FAIL - [<picture><svg><source srcset="data:,b"></svg><img src="data:,a" data-expect="data:,a"></picture>] - expected: FAIL - - [<picture><svg><source srcset="data:,b"><img src="data:,a" data-expect="data:,b"></svg></picture>] - expected: FAIL - - [<picture><svg><font><source srcset="data:,b"></font></svg><font><img src="data:,a" data-expect="data:,a"></font></picture>] - expected: FAIL - - [<picture><svg><!--<font face> tag breaks out of svg--><font face=""></font><source srcset="data:,b"></svg><img src="data:,a" data-expect="data:,b"></picture>] - expected: FAIL - [<picture><img src="data:,a"><img src="data:,b" data-expect="data:,b"></picture>] expected: FAIL @@ -267,3 +255,15 @@ [<picture><source srcset="data:,b"><img data-expect="data:,b"></picture>] expected: FAIL + [<picture><svg><source srcset="data:,b"></source></svg><img src="data:,a" data-expect="data:,a"></picture>] + expected: FAIL + + [<picture><svg></svg><source srcset="data:,b"><img src="data:,a" data-expect="data:,b"></picture>] + expected: FAIL + + [<picture><svg><font></font><source srcset="data:,b"></source></svg><img src="data:,a" data-expect="data:,a"></picture>] + expected: FAIL + + [<picture><svg><!--<font face> tag breaks out of svg--><font face=""></font><source srcset="data:,b"></source></svg><img src="data:,a" data-expect="data:,b"></picture>] + expected: FAIL + diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/131.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/131.html.ini new file mode 100644 index 00000000000..91f628fdb7b --- /dev/null +++ b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/131.html.ini @@ -0,0 +1,5 @@ +[131.html] + type: testharness + [scheduler: inline svg script ] + expected: FAIL + diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/133.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/133.html.ini new file mode 100644 index 00000000000..91c80df2d42 --- /dev/null +++ b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/133.html.ini @@ -0,0 +1,5 @@ +[133.html] + type: testharness + [scheduler: inline HTML script added by SVG script ] + expected: FAIL + diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/137.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/137.html.ini deleted file mode 100644 index 60d25da62d0..00000000000 --- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/137.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[137.html] - type: testharness - [scheduler: SVG script empty xlink:href] - expected: FAIL - diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/145.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/145.html.ini new file mode 100644 index 00000000000..b4836dc60d5 --- /dev/null +++ b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/145.html.ini @@ -0,0 +1,5 @@ +[145.html] + type: testharness + [scheduler: SVG inline script adding text to empty script ] + expected: FAIL + diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini new file mode 100644 index 00000000000..c5cde10199c --- /dev/null +++ b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/146.html.ini @@ -0,0 +1,5 @@ +[146.html] + type: testharness + [scheduler: SVG script adding src attribute ] + expected: FAIL + |