aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/gfx/Cargo.toml1
-rw-r--r--components/gfx/font_cache_thread.rs15
-rw-r--r--components/gfx/lib.rs1
-rw-r--r--components/gfx/paint_thread.rs2
-rw-r--r--components/layout/display_list_builder.rs156
-rw-r--r--components/layout/fragment.rs6
-rw-r--r--components/layout_thread/lib.rs2
-rw-r--r--components/script/dom/bindings/cell.rs4
-rw-r--r--components/script/dom/bindings/js.rs2
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs2
-rw-r--r--components/script/dom/element.rs22
-rw-r--r--components/script/dom/headers.rs46
-rw-r--r--components/script/dom/htmlimageelement.rs13
-rw-r--r--components/script/dom/node.rs2
-rw-r--r--components/script/dom/serviceworkerglobalscope.rs4
-rw-r--r--components/script/script_runtime.rs2
-rw-r--r--components/script/script_thread.rs2
-rw-r--r--components/servo/Cargo.lock452
-rw-r--r--components/style/Cargo.toml1
-rw-r--r--components/style/lib.rs2
-rw-r--r--components/style/properties/gecko.mako.rs184
-rw-r--r--components/style/properties/helpers.mako.rs65
-rw-r--r--components/style/properties/helpers/animated_properties.mako.rs37
-rw-r--r--components/style/properties/longhand/background.mako.rs93
-rw-r--r--components/style/properties/properties.mako.rs15
-rw-r--r--components/style/properties/shorthand/background.mako.rs310
-rw-r--r--components/style/properties/shorthand/border.mako.rs16
-rw-r--r--components/style/properties/shorthand/box.mako.rs12
-rw-r--r--components/style/properties/shorthand/column.mako.rs4
-rw-r--r--components/style/properties/shorthand/font.mako.rs4
-rw-r--r--components/style/properties/shorthand/inherited_text.mako.rs4
-rw-r--r--components/style/properties/shorthand/list.mako.rs4
-rw-r--r--components/style/properties/shorthand/outline.mako.rs8
-rw-r--r--components/style/properties/shorthand/position.mako.rs8
-rw-r--r--components/style/properties/shorthand/text.mako.rs4
-rw-r--r--components/style/selector_matching.rs8
-rw-r--r--components/style/thread_state.rs (renamed from components/util/thread_state.rs)0
-rw-r--r--components/style/workqueue.rs2
-rw-r--r--components/util/lib.rs1
-rw-r--r--mach.bat17
-rw-r--r--ports/cef/Cargo.lock448
-rw-r--r--ports/geckolib/Cargo.lock77
-rwxr-xr-xports/geckolib/binding_tools/regen.py5
-rw-r--r--ports/geckolib/data.rs2
-rw-r--r--ports/geckolib/gecko_bindings/bindings.rs20
-rw-r--r--ports/geckolib/gecko_bindings/sugar/ns_style_auto_array.rs5
-rw-r--r--ports/geckolib/glue.rs59
-rw-r--r--ports/geckolib/wrapper.rs11
-rw-r--r--python/servo/command_base.py4
-rw-r--r--python/tidy/servo_tidy/tidy.py71
-rw-r--r--python/tidy/servo_tidy_tests/test_tidy.py6
-rw-r--r--tests/unit/style/properties/serialization.rs120
-rw-r--r--tests/unit/style/stylesheets.rs38
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-001.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-002.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-003.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/border-width-applies-to-008.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-000.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-002.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/c5508-ipadn-b-000.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/c5510-ipadn-000.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-022.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-023.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-002.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-003.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/margin-bottom-applies-to-008.htm.ini3
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/margin-top-applies-to-008.htm.ini3
-rw-r--r--tests/wpt/metadata-css/cssom-1_dev/html/cssom-setProperty-shorthand.htm.ini35
-rw-r--r--tests/wpt/metadata/MANIFEST.json4
-rw-r--r--tests/wpt/metadata/fetch/api/request/request-headers.html.ini18
-rw-r--r--tests/wpt/metadata/webgl/conformance-1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-svg-image.html.ini1
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json72
-rw-r--r--tests/wpt/mozilla/tests/css/bubbles.pngbin0 -> 163626 bytes
-rw-r--r--tests/wpt/mozilla/tests/css/inline_element_padding_margin.html21
-rw-r--r--tests/wpt/mozilla/tests/css/inline_element_padding_margin_ref.html12
-rw-r--r--tests/wpt/mozilla/tests/css/multiple_backgrounds.html31
-rw-r--r--tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html47
-rw-r--r--tests/wpt/mozilla/tests/css/rust-logo-256x256.pngbin0 -> 37076 bytes
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/nonexistent-image.html21
79 files changed, 1567 insertions, 1136 deletions
diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml
index bc8adf69204..3ef6e183239 100644
--- a/components/gfx/Cargo.toml
+++ b/components/gfx/Cargo.toml
@@ -16,6 +16,7 @@ azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]}
bitflags = "0.7"
euclid = "0.10.1"
fnv = "1.0"
+fontsan = {git = "https://github.com/servo/fontsan"}
gfx_traits = {path = "../gfx_traits"}
harfbuzz-sys = "0.1"
heapsize = "0.3.0"
diff --git a/components/gfx/font_cache_thread.rs b/components/gfx/font_cache_thread.rs
index 9b761900a80..055216a948d 100644
--- a/components/gfx/font_cache_thread.rs
+++ b/components/gfx/font_cache_thread.rs
@@ -3,6 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use font_template::{FontTemplate, FontTemplateDescriptor};
+use fontsan;
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
use ipc_channel::router::ROUTER;
use mime::{TopLevel, SubLevel};
@@ -252,8 +253,18 @@ impl FontCache {
channel_to_self.send(msg).unwrap();
return;
}
- let mut bytes = bytes.lock().unwrap();
- let bytes = mem::replace(&mut *bytes, Vec::new());
+ let bytes = mem::replace(&mut *bytes.lock().unwrap(), vec![]);
+ let bytes = match fontsan::process(&bytes) {
+ Ok(san) => san,
+ Err(_) => {
+ // FIXME(servo/fontsan#1): get an error message
+ debug!("Sanitiser rejected web font: \
+ family={:?} url={}", family_name, url);
+ let msg = Command::AddWebFont(family_name.clone(), sources.clone(), sender.clone());
+ channel_to_self.send(msg).unwrap();
+ return;
+ },
+ };
let command =
Command::AddDownloadedWebFont(family_name.clone(),
url.clone(),
diff --git a/components/gfx/lib.rs b/components/gfx/lib.rs
index bed633b9562..f8e8febc96c 100644
--- a/components/gfx/lib.rs
+++ b/components/gfx/lib.rs
@@ -39,6 +39,7 @@ extern crate fnv;
// Platforms that use Freetype/Fontconfig library dependencies
#[cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))]
extern crate fontconfig;
+extern crate fontsan;
#[cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))]
extern crate freetype;
diff --git a/components/gfx/paint_thread.rs b/components/gfx/paint_thread.rs
index 47d6d6590cf..13754a3cf15 100644
--- a/components/gfx/paint_thread.rs
+++ b/components/gfx/paint_thread.rs
@@ -29,11 +29,11 @@ use std::collections::HashMap;
use std::mem as std_mem;
use std::sync::Arc;
use std::sync::mpsc::{Receiver, Sender, channel};
+use style::thread_state;
use url::Url;
use util::geometry::ExpandToPixelBoundaries;
use util::opts;
use util::thread;
-use util::thread_state;
#[derive(Clone, HeapSizeOf)]
struct PaintLayer {
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs
index 2c0063b7c39..ce3df3f4c47 100644
--- a/components/layout/display_list_builder.rs
+++ b/components/layout/display_list_builder.rs
@@ -60,6 +60,10 @@ use table_cell::CollapsedBordersForCell;
use url::Url;
use util::opts;
+fn get_cyclic<T>(arr: &[T], index: usize) -> &T {
+ &arr[index % arr.len()]
+}
+
pub struct DisplayListBuildState<'a> {
pub layout_context: &'a LayoutContext<'a>,
pub items: Vec<DisplayItem>,
@@ -146,7 +150,7 @@ pub trait FragmentDisplayListBuilding {
fn compute_background_image_size(&self,
style: &ServoComputedValues,
bounds: &Rect<Au>,
- image: &WebRenderImageInfo)
+ image: &WebRenderImageInfo, index: usize)
-> Size2D<Au>;
/// Adds the display items necessary to paint the background image of this fragment to the
@@ -157,7 +161,8 @@ pub trait FragmentDisplayListBuilding {
display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>,
clip: &ClippingRegion,
- image_url: &Url);
+ image_url: &Url,
+ background_index: usize);
/// Adds the display items necessary to paint the background linear gradient of this fragment
/// to the appropriate section of the display list.
@@ -344,27 +349,32 @@ impl FragmentDisplayListBuilding for Fragment {
if !border_radii.is_square() {
clip.intersect_with_rounded_rect(absolute_bounds, &border_radii)
}
+ let background = style.get_background();
// FIXME: This causes a lot of background colors to be displayed when they are clearly not
// needed. We could use display list optimization to clean this up, but it still seems
// inefficient. What we really want is something like "nearest ancestor element that
// doesn't have a fragment".
- let background_color = style.resolve_color(style.get_background().background_color);
+ let background_color = style.resolve_color(background.background_color);
// 'background-clip' determines the area within which the background is painted.
// http://dev.w3.org/csswg/css-backgrounds-3/#the-background-clip
let mut bounds = *absolute_bounds;
- match style.get_background().background_clip {
- background_clip::T::border_box => {}
- background_clip::T::padding_box => {
+ // This is the clip for the color (which is the last element in the bg array)
+ let color_clip = get_cyclic(&background.background_clip.0,
+ background.background_image.0.len() - 1);
+
+ match *color_clip {
+ background_clip::single_value::T::border_box => {}
+ background_clip::single_value::T::padding_box => {
let border = style.logical_border_width().to_physical(style.writing_mode);
bounds.origin.x = bounds.origin.x + border.left;
bounds.origin.y = bounds.origin.y + border.top;
bounds.size.width = bounds.size.width - border.horizontal();
bounds.size.height = bounds.size.height - border.vertical();
}
- background_clip::T::content_box => {
+ background_clip::single_value::T::content_box => {
let border_padding = self.border_padding.to_physical(style.writing_mode);
bounds.origin.x = bounds.origin.x + border_padding.left;
bounds.origin.y = bounds.origin.y + border_padding.top;
@@ -388,23 +398,26 @@ impl FragmentDisplayListBuilding for Fragment {
// Implements background image, per spec:
// http://www.w3.org/TR/CSS21/colors.html#background
let background = style.get_background();
- match background.background_image.0 {
- None => {}
- Some(computed::Image::LinearGradient(ref gradient)) => {
- self.build_display_list_for_background_linear_gradient(state,
- display_list_section,
- &bounds,
- &clip,
- gradient,
- style);
- }
- Some(computed::Image::Url(ref image_url, ref _extra_data)) => {
- self.build_display_list_for_background_image(state,
- style,
- display_list_section,
- &bounds,
- &clip,
- image_url);
+ for (i, background_image) in background.background_image.0.iter().enumerate().rev() {
+ match background_image.0 {
+ None => {}
+ Some(computed::Image::LinearGradient(ref gradient)) => {
+ self.build_display_list_for_background_linear_gradient(state,
+ display_list_section,
+ &bounds,
+ &clip,
+ gradient,
+ style);
+ }
+ Some(computed::Image::Url(ref image_url, ref _extra_data)) => {
+ self.build_display_list_for_background_image(state,
+ style,
+ display_list_section,
+ &bounds,
+ &clip,
+ image_url,
+ i);
+ }
}
}
}
@@ -412,7 +425,8 @@ impl FragmentDisplayListBuilding for Fragment {
fn compute_background_image_size(&self,
style: &ServoComputedValues,
bounds: &Rect<Au>,
- image: &WebRenderImageInfo)
+ image: &WebRenderImageInfo,
+ index: usize)
-> Size2D<Au> {
// If `image_aspect_ratio` < `bounds_aspect_ratio`, the image is tall; otherwise, it is
// wide.
@@ -420,19 +434,22 @@ impl FragmentDisplayListBuilding for Fragment {
let bounds_aspect_ratio = bounds.size.width.to_f64_px() / bounds.size.height.to_f64_px();
let intrinsic_size = Size2D::new(Au::from_px(image.width as i32),
Au::from_px(image.height as i32));
- match (style.get_background().background_size.clone(),
- image_aspect_ratio < bounds_aspect_ratio) {
- (background_size::T::Contain, false) | (background_size::T::Cover, true) => {
+ let background_size = get_cyclic(&style.get_background().background_size.0, index).clone();
+ match (background_size, image_aspect_ratio < bounds_aspect_ratio) {
+ (background_size::single_value::T::Contain, false) |
+ (background_size::single_value::T::Cover, true) => {
Size2D::new(bounds.size.width,
Au::from_f64_px(bounds.size.width.to_f64_px() / image_aspect_ratio))
}
- (background_size::T::Contain, true) | (background_size::T::Cover, false) => {
+ (background_size::single_value::T::Contain, true) |
+ (background_size::single_value::T::Cover, false) => {
Size2D::new(Au::from_f64_px(bounds.size.height.to_f64_px() * image_aspect_ratio),
bounds.size.height)
}
- (background_size::T::Explicit(background_size::ExplicitSize {
+ (background_size::single_value::T::Explicit(background_size::single_value
+ ::ExplicitSize {
width,
height: LengthOrPercentageOrAuto::Auto,
}), _) => {
@@ -441,7 +458,8 @@ impl FragmentDisplayListBuilding for Fragment {
Size2D::new(width, Au::from_f64_px(width.to_f64_px() / image_aspect_ratio))
}
- (background_size::T::Explicit(background_size::ExplicitSize {
+ (background_size::single_value::T::Explicit(background_size::single_value
+ ::ExplicitSize {
width: LengthOrPercentageOrAuto::Auto,
height
}), _) => {
@@ -450,7 +468,8 @@ impl FragmentDisplayListBuilding for Fragment {
Size2D::new(Au::from_f64_px(height.to_f64_px() * image_aspect_ratio), height)
}
- (background_size::T::Explicit(background_size::ExplicitSize {
+ (background_size::single_value::T::Explicit(background_size::single_value
+ ::ExplicitSize {
width,
height
}), _) => {
@@ -468,19 +487,22 @@ impl FragmentDisplayListBuilding for Fragment {
display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>,
clip: &ClippingRegion,
- image_url: &Url) {
+ image_url: &Url,
+ index: usize) {
let background = style.get_background();
let fetch_image_data_as_well = !opts::get().use_webrender;
let webrender_image =
state.layout_context.get_webrender_image_for_url(image_url,
UsePlaceholder::No,
fetch_image_data_as_well);
+
if let Some((webrender_image, image_data)) = webrender_image {
debug!("(building display list) building background image");
// Use `background-size` to get the size.
let mut bounds = *absolute_bounds;
- let image_size = self.compute_background_image_size(style, &bounds, &webrender_image);
+ let image_size = self.compute_background_image_size(style, &bounds,
+ &webrender_image, index);
// Clip.
//
@@ -492,25 +514,27 @@ impl FragmentDisplayListBuilding for Fragment {
let border = style.logical_border_width().to_physical(style.writing_mode);
// Use 'background-origin' to get the origin value.
- let (mut origin_x, mut origin_y) = match background.background_origin {
- background_origin::T::padding_box => {
+ let origin = get_cyclic(&background.background_origin.0, index);
+ let (mut origin_x, mut origin_y) = match *origin {
+ background_origin::single_value::T::padding_box => {
(Au(0), Au(0))
}
- background_origin::T::border_box => {
+ background_origin::single_value::T::border_box => {
(-border.left, -border.top)
}
- background_origin::T::content_box => {
+ background_origin::single_value::T::content_box => {
let border_padding = self.border_padding.to_physical(self.style.writing_mode);
(border_padding.left - border.left, border_padding.top - border.top)
}
};
// Use `background-attachment` to get the initial virtual origin
- let (virtual_origin_x, virtual_origin_y) = match background.background_attachment {
- background_attachment::T::scroll => {
+ let attachment = get_cyclic(&background.background_attachment.0, index);
+ let (virtual_origin_x, virtual_origin_y) = match *attachment {
+ background_attachment::single_value::T::scroll => {
(absolute_bounds.origin.x, absolute_bounds.origin.y)
}
- background_attachment::T::fixed => {
+ background_attachment::single_value::T::fixed => {
// If the ‘background-attachment’ value for this image is ‘fixed’, then
// 'background-origin' has no effect.
origin_x = Au(0);
@@ -519,24 +543,25 @@ impl FragmentDisplayListBuilding for Fragment {
}
};
+ let position = *get_cyclic(&background.background_position.0, index);
// Use `background-position` to get the offset.
- let horizontal_position = model::specified(background.background_position.0.horizontal,
- bounds.size.width - image_size.width);
- let vertical_position = model::specified(background.background_position.0.vertical,
- bounds.size.height - image_size.height);
+ let horizontal_position = model::specified(position.horizontal,
+ bounds.size.width - image_size.width);
+ let vertical_position = model::specified(position.vertical,
+ bounds.size.height - image_size.height);
let abs_x = border.left + virtual_origin_x + horizontal_position + origin_x;
let abs_y = border.top + virtual_origin_y + vertical_position + origin_y;
// Adjust origin and size based on background-repeat
- match background.background_repeat {
- background_repeat::T::no_repeat => {
+ match *get_cyclic(&background.background_repeat.0, index) {
+ background_repeat::single_value::T::no_repeat => {
bounds.origin.x = abs_x;
bounds.origin.y = abs_y;
bounds.size.width = image_size.width;
bounds.size.height = image_size.height;
}
- background_repeat::T::repeat_x => {
+ background_repeat::single_value::T::repeat_x => {
bounds.origin.y = abs_y;
bounds.size.height = image_size.height;
ImageFragmentInfo::tile_image(&mut bounds.origin.x,
@@ -544,7 +569,7 @@ impl FragmentDisplayListBuilding for Fragment {
abs_x,
image_size.width.to_nearest_px() as u32);
}
- background_repeat::T::repeat_y => {
+ background_repeat::single_value::T::repeat_y => {
bounds.origin.x = abs_x;
bounds.size.width = image_size.width;
ImageFragmentInfo::tile_image(&mut bounds.origin.y,
@@ -552,31 +577,32 @@ impl FragmentDisplayListBuilding for Fragment {
abs_y,
image_size.height.to_nearest_px() as u32);
}
- background_repeat::T::repeat => {
+ background_repeat::single_value::T::repeat => {
ImageFragmentInfo::tile_image(&mut bounds.origin.x,
- &mut bounds.size.width,
- abs_x,
- image_size.width.to_nearest_px() as u32);
+ &mut bounds.size.width,
+ abs_x,
+ image_size.width.to_nearest_px() as u32);
ImageFragmentInfo::tile_image(&mut bounds.origin.y,
- &mut bounds.size.height,
- abs_y,
- image_size.height.to_nearest_px() as u32);
+ &mut bounds.size.height,
+ abs_y,
+ image_size.height.to_nearest_px() as u32);
}
};
// Create the image display item.
let base = state.create_base_display_item(&bounds,
- &clip,
- self.node,
- style.get_cursor(Cursor::Default),
- display_list_section);
+ &clip,
+ self.node,
+ style.get_cursor(Cursor::Default),
+ display_list_section);
state.add_display_item(DisplayItem::ImageClass(box ImageDisplayItem {
- base: base,
- webrender_image: webrender_image,
- image_data: image_data.map(Arc::new),
- stretch_size: Size2D::new(image_size.width, image_size.height),
- image_rendering: style.get_inheritedbox().image_rendering.clone(),
+ base: base,
+ webrender_image: webrender_image,
+ image_data: image_data.map(Arc::new),
+ stretch_size: Size2D::new(image_size.width, image_size.height),
+ image_rendering: style.get_inheritedbox().image_rendering.clone(),
}));
+
}
}
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index bfef94fdd0d..dbf6307bac1 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -2008,10 +2008,8 @@ impl Fragment {
let font_derived_metrics =
InlineMetrics::from_font_metrics(&info.run.font_metrics, line_height);
InlineMetrics {
- block_size_above_baseline: font_derived_metrics.block_size_above_baseline +
- self.border_padding.block_start,
- depth_below_baseline: font_derived_metrics.depth_below_baseline +
- self.border_padding.block_end,
+ block_size_above_baseline: font_derived_metrics.block_size_above_baseline,
+ depth_below_baseline: font_derived_metrics.depth_below_baseline,
ascent: font_derived_metrics.ascent + self.border_padding.block_start,
}
}
diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs
index 9e09007188c..3fcdaa7c986 100644
--- a/components/layout_thread/lib.rs
+++ b/components/layout_thread/lib.rs
@@ -110,6 +110,7 @@ use style::refcell::RefCell;
use style::selector_matching::Stylist;
use style::servo_selector_impl::USER_OR_USER_AGENT_STYLESHEETS;
use style::stylesheets::{Stylesheet, CSSRuleIteratorExt};
+use style::thread_state;
use style::timer::Timer;
use style::workqueue::WorkQueue;
use url::Url;
@@ -118,7 +119,6 @@ use util::ipc::OptionalIpcSender;
use util::opts;
use util::prefs::PREFS;
use util::thread;
-use util::thread_state;
/// The number of screens we have to traverse before we decide to generate new display lists.
const DISPLAY_PORT_THRESHOLD_SIZE_FACTOR: i32 = 4;
diff --git a/components/script/dom/bindings/cell.rs b/components/script/dom/bindings/cell.rs
index 3eb2a978c7a..29c4f8bad09 100644
--- a/components/script/dom/bindings/cell.rs
+++ b/components/script/dom/bindings/cell.rs
@@ -7,8 +7,8 @@
use dom::bindings::trace::JSTraceable;
use js::jsapi::JSTracer;
use std::cell::{BorrowError, BorrowMutError, Ref, RefCell, RefMut};
-use util::thread_state;
-use util::thread_state::SCRIPT;
+use style::thread_state;
+use style::thread_state::SCRIPT;
/// A mutable field in the DOM.
///
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index 12ff0aa8823..6a0dfd83dea 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -43,7 +43,7 @@ use std::intrinsics::type_name;
use std::mem;
use std::ops::Deref;
use std::ptr;
-use util::thread_state;
+use style::thread_state;
/// A traced reference to a DOM object
///
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index dfe385f0696..68899bd36b8 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -37,9 +37,9 @@ use std::mem::replace;
use std::sync::atomic::AtomicBool;
use std::sync::mpsc::{Receiver, RecvError, Select, Sender, channel};
use std::sync::{Arc, Mutex};
+use style::thread_state;
use url::Url;
use util::thread::spawn_named;
-use util::thread_state;
/// Set the `worker` field of a related DedicatedWorkerGlobalScope object to a particular
/// value for the duration of this object's lifetime. This ensures that the related Worker
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 26ad3eaee40..2d57ddab4d6 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -362,8 +362,11 @@ impl LayoutElementHelpers for LayoutJS<Element> {
if let Some(url) = background {
hints.push(from_declaration(
PropertyDeclaration::BackgroundImage(DeclaredValue::Value(
- background_image::SpecifiedValue(Some(
- specified::Image::Url(url, specified::UrlExtraData { })))))));
+ background_image::SpecifiedValue(vec![
+ background_image::single_value::SpecifiedValue(Some(
+ specified::Image::Url(url, specified::UrlExtraData { })
+ ))
+ ])))));
}
let color = if let Some(this) = self.downcast::<HTMLFontElement>() {
@@ -774,8 +777,6 @@ impl Element {
Arc::make_mut(&mut declarations.declarations).remove(index);
if importance.unwrap().important() {
declarations.important_count -= 1;
- } else {
- declarations.normal_count -= 1;
}
}
}
@@ -802,11 +803,9 @@ impl Element {
if existing_declaration.0.name() == incoming_declaration.name() {
match (existing_declaration.1, importance) {
(Importance::Normal, Importance::Important) => {
- declaration_block.normal_count -= 1;
declaration_block.important_count += 1;
}
(Importance::Important, Importance::Normal) => {
- declaration_block.normal_count += 1;
declaration_block.important_count -= 1;
}
_ => {}
@@ -818,23 +817,20 @@ impl Element {
existing_declarations.push((incoming_declaration, importance));
if importance.important() {
declaration_block.important_count += 1;
- } else {
- declaration_block.normal_count += 1;
}
}
}
return;
}
- let (normal_count, important_count) = if importance.important() {
- (0, declarations.len() as u32)
+ let important_count = if importance.important() {
+ declarations.len() as u32
} else {
- (declarations.len() as u32, 0)
+ 0
};
*inline_declarations = Some(PropertyDeclarationBlock {
declarations: Arc::new(declarations.into_iter().map(|d| (d, importance)).collect()),
- normal_count: normal_count,
important_count: important_count,
});
}
@@ -856,11 +852,9 @@ impl Element {
if properties.iter().any(|p| declaration.name() == **p) {
match (*importance, new_importance) {
(Importance::Normal, Importance::Important) => {
- block.normal_count -= 1;
block.important_count += 1;
}
(Importance::Important, Importance::Normal) => {
- block.normal_count += 1;
block.important_count -= 1;
}
_ => {}
diff --git a/components/script/dom/headers.rs b/components/script/dom/headers.rs
index cb3b4d13e48..6fa4e0249c8 100644
--- a/components/script/dom/headers.rs
+++ b/components/script/dom/headers.rs
@@ -12,8 +12,10 @@ use dom::bindings::js::Root;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::str::{ByteString, is_token};
use hyper::header::Headers as HyperHeaders;
+use mime::{Mime, TopLevel, SubLevel};
use std::cell::Cell;
use std::result::Result;
+use std::str;
#[dom_struct]
pub struct Headers {
@@ -72,7 +74,7 @@ impl HeadersMethods for Headers {
return Ok(());
}
// Step 5
- if self.guard.get() == Guard::RequestNoCors && !is_cors_safelisted_request_header(&valid_name) {
+ if self.guard.get() == Guard::RequestNoCors && !is_cors_safelisted_request_header(&valid_name, &valid_value) {
return Ok(());
}
// Step 6
@@ -103,9 +105,12 @@ impl HeadersMethods for Headers {
return Ok(());
}
// Step 4
- if self.guard.get() == Guard::RequestNoCors && !is_cors_safelisted_request_header(&valid_name) {
- return Ok(());
- }
+ // TODO: Requires clarification from the Fetch spec:
+ // ... https://github.com/whatwg/fetch/issues/372
+ if self.guard.get() == Guard::RequestNoCors &&
+ !is_cors_safelisted_request_header(&valid_name, &b"invalid".to_vec()) {
+ return Ok(());
+ }
// Step 5
if self.guard.get() == Guard::Response && is_forbidden_response_header(&valid_name) {
return Ok(());
@@ -148,7 +153,7 @@ impl HeadersMethods for Headers {
return Ok(());
}
// Step 5
- if self.guard.get() == Guard::RequestNoCors && !is_cors_safelisted_request_header(&valid_name) {
+ if self.guard.get() == Guard::RequestNoCors && !is_cors_safelisted_request_header(&valid_name, &valid_value) {
return Ok(());
}
// Step 6
@@ -220,18 +225,35 @@ impl Headers {
}
}
-// TODO
-// "Content-Type" once parsed, the value should be
-// `application/x-www-form-urlencoded`, `multipart/form-data`,
-// or `text/plain`.
-// "DPR", "Downlink", "Save-Data", "Viewport-Width", "Width":
-// once parsed, the value should not be failure.
+fn is_cors_safelisted_request_content_type(value: &[u8]) -> bool {
+ let value_string = if let Ok(s) = str::from_utf8(value) {
+ s
+ } else {
+ return false;
+ };
+ let value_mime_result: Result<Mime, _> = value_string.parse();
+ match value_mime_result {
+ Err(_) => false,
+ Ok(value_mime) => {
+ match value_mime {
+ Mime(TopLevel::Application, SubLevel::WwwFormUrlEncoded, _) |
+ Mime(TopLevel::Multipart, SubLevel::FormData, _) |
+ Mime(TopLevel::Text, SubLevel::Plain, _) => true,
+ _ => false,
+ }
+ }
+ }
+}
+
+// TODO: "DPR", "Downlink", "Save-Data", "Viewport-Width", "Width":
+// ... once parsed, the value should not be failure.
// https://fetch.spec.whatwg.org/#cors-safelisted-request-header
-fn is_cors_safelisted_request_header(name: &str) -> bool {
+fn is_cors_safelisted_request_header(name: &str, value: &[u8]) -> bool {
match name {
"accept" |
"accept-language" |
"content-language" => true,
+ "content-type" => is_cors_safelisted_request_content_type(value),
_ => false,
}
}
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index cb0f65d0b2b..f03e43d9f2e 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -86,14 +86,14 @@ impl Runnable for ImageResponseHandlerRunnable {
// Update the image field
let element = self.element.root();
let element_ref = element.r();
- let (image, metadata, trigger_image_load) = match self.image {
+ let (image, metadata, trigger_image_load, trigger_image_error) = match self.image {
ImageResponse::Loaded(image) | ImageResponse::PlaceholderLoaded(image) => {
- (Some(image.clone()), Some(ImageMetadata { height: image.height, width: image.width } ), true)
+ (Some(image.clone()), Some(ImageMetadata { height: image.height, width: image.width } ), true, false)
}
ImageResponse::MetadataLoaded(meta) => {
- (None, Some(meta), false)
+ (None, Some(meta), false, false)
}
- ImageResponse::None => (None, None, true)
+ ImageResponse::None => (None, None, false, true)
};
element_ref.current_request.borrow_mut().image = image;
element_ref.current_request.borrow_mut().metadata = metadata;
@@ -107,6 +107,11 @@ impl Runnable for ImageResponseHandlerRunnable {
element.upcast::<EventTarget>().fire_simple_event("load");
}
+ // Fire image.onerror
+ if trigger_image_error {
+ element.upcast::<EventTarget>().fire_simple_event("error");
+ }
+
// Trigger reflow
let window = window_from_node(document.r());
window.add_pending_reflow();
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 34e69552f18..49aa8242b34 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -76,8 +76,8 @@ use std::ops::Range;
use string_cache::{Atom, Namespace, QualName};
use style::dom::OpaqueNode;
use style::selector_impl::ServoSelectorImpl;
+use style::thread_state;
use url::Url;
-use util::thread_state;
use uuid::Uuid;
//
diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs
index dc8a8788a61..275fffdb99a 100644
--- a/components/script/dom/serviceworkerglobalscope.rs
+++ b/components/script/dom/serviceworkerglobalscope.rs
@@ -32,11 +32,11 @@ use script_traits::{TimerEvent, WorkerGlobalScopeInit, ScopeThings, ServiceWorke
use std::sync::mpsc::{Receiver, RecvError, Select, Sender, channel};
use std::thread;
use std::time::Duration;
+use style::thread_state;
+use style::thread_state::{IN_WORKER, SCRIPT};
use url::Url;
use util::prefs::PREFS;
use util::thread::spawn_named;
-use util::thread_state;
-use util::thread_state::{IN_WORKER, SCRIPT};
/// Messages used to control service worker event loop
pub enum ServiceWorkerScriptMsg {
diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs
index dfbb5ba5203..b16ca804f5c 100644
--- a/components/script/script_runtime.rs
+++ b/components/script/script_runtime.rs
@@ -25,10 +25,10 @@ use std::io::{Write, stdout};
use std::marker::PhantomData;
use std::os;
use std::ptr;
+use style::thread_state;
use time::{Tm, now};
use util::opts;
use util::prefs::PREFS;
-use util::thread_state;
/// Common messages used to control the event loops in both the script and the worker
pub enum CommonScriptMsg {
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index 4dd3a3fba7f..4834218a89b 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -99,6 +99,7 @@ use std::sync::atomic::{Ordering, AtomicBool};
use std::sync::mpsc::{Receiver, Select, Sender, channel};
use std::sync::{Arc, Mutex};
use style::context::ReflowGoal;
+use style::thread_state;
use task_source::TaskSource;
use task_source::dom_manipulation::{DOMManipulationTaskSource, DOMManipulationTask};
use task_source::file_reading::FileReadingTaskSource;
@@ -109,7 +110,6 @@ use time::Tm;
use url::{Url, Position};
use util::opts;
use util::thread;
-use util::thread_state;
use webdriver_handlers;
thread_local!(pub static STACK_ROOTS: Cell<Option<RootCollectionPtr>> = Cell::new(None));
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index c31dc2b2e7d..4bdc0dab852 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -23,7 +23,7 @@ dependencies = [
"layout 0.0.1",
"layout_tests 0.0.1",
"layout_thread 0.0.1",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net 0.0.1",
@@ -73,7 +73,7 @@ version = "0.1.1"
source = "git+https://github.com/servo/angle?branch=servo#832ffd74ac892682dfcaea27dc518130a72e280c"
dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -82,7 +82,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -93,7 +93,7 @@ version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -114,13 +114,13 @@ dependencies = [
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -131,10 +131,10 @@ dependencies = [
"backtrace-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-demangle 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-demangle 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -142,8 +142,8 @@ name = "backtrace-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -152,7 +152,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -185,7 +185,7 @@ name = "blurz"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "dbus 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dbus 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -200,7 +200,7 @@ dependencies = [
[[package]]
name = "browserhtml"
version = "0.1.17"
-source = "git+https://github.com/browserhtml/browserhtml?branch=crate#82ab69c8a83a34c9f81adef57255557b1a52412f"
+source = "git+https://github.com/browserhtml/browserhtml?branch=crate#aafbb0996b02d1fadd4713c96e3d22b542f175a1"
[[package]]
name = "byteorder"
@@ -218,7 +218,7 @@ dependencies = [
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"util 0.0.1",
@@ -247,7 +247,7 @@ name = "caseless"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -258,11 +258,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "cgl"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -270,7 +270,7 @@ name = "cmake"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -281,7 +281,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -315,7 +315,7 @@ dependencies = [
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -371,7 +371,7 @@ name = "content-blocker"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -393,7 +393,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -401,7 +401,7 @@ name = "core-foundation-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -410,7 +410,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -421,12 +421,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "crossbeam"
-version = "0.2.9"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -445,16 +445,16 @@ name = "dbghelp-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "dbus"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -477,7 +477,7 @@ dependencies = [
[[package]]
name = "device"
version = "0.0.1"
-source = "git+https://github.com/servo/devices#3c39846a019eeed939eb7090096631254e6b5efc"
+source = "git+https://github.com/servo/devices#09ab8682bddfa73ba36025a150625504212d34da"
dependencies = [
"blurz 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -488,7 +488,7 @@ version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -508,7 +508,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -522,7 +522,7 @@ name = "dlib"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libloading 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libloading 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -535,19 +535,11 @@ name = "dwmapi-sys"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
-name = "dylib"
-version = "0.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "encoding"
version = "0.2.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -616,7 +608,7 @@ source = "git+https://github.com/energymon/energymon-rust.git#7b30c4d88ac1fcfaf7
dependencies = [
"energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"energymon-default-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -634,7 +626,7 @@ source = "git+https://github.com/energymon/energymon-sys.git#a0fb99b0312372958b1
dependencies = [
"energymon-builder 0.2.0 (git+https://github.com/energymon/energymon-sys.git)",
"energymon-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -642,7 +634,7 @@ name = "energymon-sys"
version = "0.2.0"
source = "git+https://github.com/energymon/energymon-sys.git#a0fb99b0312372958b110ae6378b5c89c2287172"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -650,7 +642,7 @@ name = "enum_primitive"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -659,7 +651,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -669,7 +661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -688,7 +680,7 @@ name = "flate2"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -698,21 +690,31 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
+name = "fontsan"
+version = "0.3.2"
+source = "git+https://github.com/servo/fontsan#08bfa604bf0cc882d9b4385c57db65e200975b72"
+dependencies = [
+ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "freetype"
version = "0.1.0"
source = "git+https://github.com/servo/rust-freetype#d564ff90a3c69d987f5c015d7ec034cfaee21aff"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "fs2"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -729,14 +731,14 @@ name = "gaol"
version = "0.0.1"
source = "git+https://github.com/servo/gaol#545c703ebfe7a3a0d7129eb40981527f5d680860"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gcc"
-version = "0.3.28"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -744,7 +746,7 @@ name = "gdi32-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -766,6 +768,7 @@ dependencies = [
"core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fontsan 0.3.2 (git+https://github.com/servo/fontsan)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gfx_traits 0.0.1",
"harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -774,7 +777,7 @@ dependencies = [
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -788,7 +791,7 @@ dependencies = [
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "simd 0.1.0 (git+https://github.com/huonw/simd)",
+ "simd 0.1.1 (git+https://github.com/huonw/simd)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
@@ -875,13 +878,13 @@ dependencies = [
"net_traits 0.0.1",
"script_traits 0.0.1",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "servo-glutin 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo-glutin 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style_traits 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -891,7 +894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -900,7 +903,7 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -909,7 +912,7 @@ name = "heapsize"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -922,17 +925,17 @@ name = "heartbeats-simple"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "heartbeats-simple-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "heartbeats-simple-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "heartbeats-simple-sys"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -990,7 +993,7 @@ dependencies = [
[[package]]
name = "hyper_serde"
-version = "0.1.4"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1011,17 +1014,17 @@ dependencies = [
[[package]]
name = "image"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gif 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "jpeg-decoder 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "jpeg-decoder 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-rational 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-rational 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"png 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1033,7 +1036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1046,11 +1049,11 @@ name = "io-surface"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1060,7 +1063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bincode 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1073,7 +1076,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "jpeg-decoder"
-version = "0.1.5"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1088,18 +1091,18 @@ dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "kernel32-sys"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1118,7 +1121,7 @@ name = "layers"
version = "0.5.1"
source = "git+https://github.com/servo/rust-layers#9b90d76cf0bc108ef6b29dab42d2ea36dbd718f8"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1126,12 +1129,12 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1150,7 +1153,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1252,17 +1255,18 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.13"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "libloading"
-version = "0.2.2"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "target_build_utils 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1278,8 +1282,8 @@ name = "libz-sys"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1303,7 +1307,7 @@ name = "malloc_buf"
version = "0.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1316,7 +1320,7 @@ name = "memchr"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1324,10 +1328,10 @@ name = "memmap"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "fs2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fs2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1355,16 +1359,16 @@ name = "miniz-sys"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "mozjs_sys"
version = "0.0.0"
-source = "git+https://github.com/servo/mozjs#0f2ea3416044656e09f107b8f9e0d169264a7c77"
+source = "git+https://github.com/servo/mozjs#7cd66925e766ef7bc69888f167e6392fac46c54f"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"libz-sys 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1377,7 +1381,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1398,7 +1402,7 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"immeta 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1414,7 +1418,7 @@ dependencies = [
"profile_traits 0.0.1",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
- "threadpool 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)",
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1427,13 +1431,13 @@ dependencies = [
[[package]]
name = "net2"
-version = "0.2.23"
+version = "0.2.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1446,7 +1450,7 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net 0.0.1",
@@ -1467,13 +1471,13 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1494,26 +1498,26 @@ name = "nodrop"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-bigint"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1523,7 +1527,7 @@ name = "num-integer"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1532,23 +1536,23 @@ version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-rational"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-bigint 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-bigint 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-traits"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1556,7 +1560,7 @@ name = "num_cpus"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1569,7 +1573,7 @@ dependencies = [
[[package]]
name = "odds"
-version = "0.2.12"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1577,7 +1581,7 @@ name = "offscreen_gl_context"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1585,7 +1589,7 @@ dependencies = [
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1599,20 +1603,20 @@ version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.7.17 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys-extras 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "openssl-sys"
-version = "0.7.14"
+version = "0.7.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"libressl-pnacl-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1623,9 +1627,9 @@ name = "openssl-sys-extras"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.7.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1641,13 +1645,13 @@ name = "ordered-float"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "osmesa-sys"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"shared_library 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1719,7 +1723,7 @@ name = "pnacl-build-helper"
version = "1.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1739,11 +1743,11 @@ version = "0.0.1"
dependencies = [
"heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"profile_traits 0.0.1",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1797,10 +1801,10 @@ dependencies = [
[[package]]
name = "quickersort"
-version = "2.0.1"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1809,7 +1813,7 @@ name = "rand"
version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1818,7 +1822,7 @@ version = "0.0.1"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1846,24 +1850,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "regex"
-version = "0.1.71"
+version = "0.1.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
"utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex-syntax"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "rustc-demangle"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1905,17 +1909,17 @@ dependencies = [
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"js 0.1.3 (git+https://github.com/servo/rust-mozjs)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"mime_guess 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1926,7 +1930,7 @@ dependencies = [
"range 0.0.1",
"ref_filter_map 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ref_slice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"script_layout_interface 0.0.1",
"script_traits 0.0.1",
@@ -1958,7 +1962,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1995,10 +1999,10 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2024,7 +2028,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2062,7 +2066,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2079,7 +2083,7 @@ name = "servo-egl"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2087,7 +2091,7 @@ name = "servo-fontconfig"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2112,31 +2116,31 @@ dependencies = [
[[package]]
name = "servo-glutin"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"android_glue 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cocoa 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwmapi-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "osmesa-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "osmesa-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"shared_library 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-kbd 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11-dl 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2144,19 +2148,19 @@ name = "servo-skia"
version = "0.20130412.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "servo-glutin 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo-glutin 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2165,7 +2169,7 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2173,7 +2177,7 @@ name = "shell32-sys"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2184,8 +2188,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "simd"
-version = "0.1.0"
-source = "git+https://github.com/huonw/simd#03de1cd0a278ab902b4beb402d57505f3797ea56"
+version = "0.1.1"
+source = "git+https://github.com/huonw/simd#0d85d25d5cc3788062b252e31ad48dd19e805e90"
[[package]]
name = "smallvec"
@@ -2227,15 +2231,16 @@ dependencies = [
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"ordered-float 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
- "quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2280,15 +2285,23 @@ dependencies = [
]
[[package]]
+name = "target_build_utils"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "task_info"
version = "0.0.1"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "tempdir"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2296,14 +2309,14 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "2.1.3"
+version = "2.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2322,13 +2335,13 @@ name = "thread-id"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "thread_local"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2336,7 +2349,7 @@ dependencies = [
[[package]]
name = "threadpool"
-version = "1.3.1"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -2344,19 +2357,19 @@ name = "time"
version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "tinyfiledialogs"
version = "0.1.0"
-source = "git+https://github.com/jdm/tinyfiledialogs#54f6aa4f579edbc726b8a764fd759a6d6ed0dd84"
+source = "git+https://github.com/jdm/tinyfiledialogs#41d4268b6852ca5e53a484f0f915a9b63bca1707"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2424,7 +2437,7 @@ name = "user32-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2488,8 +2501,8 @@ name = "walkdir"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2498,9 +2511,9 @@ version = "0.5.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
"dlib 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-scanner 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-sys 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2540,7 +2553,7 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempfile 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2551,7 +2564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2562,12 +2575,12 @@ dependencies = [
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"script_traits 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2594,7 +2607,7 @@ dependencies = [
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2626,7 +2639,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2636,7 +2649,7 @@ dependencies = [
[[package]]
name = "winapi"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -2649,26 +2662,27 @@ name = "ws2_32-sys"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "x11"
-version = "2.6.1"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "x11-dl"
-version = "2.4.0"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "dylib 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml
index 4f0d53cce20..daceb3178d1 100644
--- a/components/style/Cargo.toml
+++ b/components/style/Cargo.toml
@@ -34,6 +34,7 @@ heapsize_plugin = {version = "0.1.2", optional = true}
lazy_static = "0.2"
log = "0.3.5"
matches = "0.1"
+num-integer = "0.1.32"
num-traits = "0.1.32"
ordered-float = "0.2.2"
quickersort = "2.0.0"
diff --git a/components/style/lib.rs b/components/style/lib.rs
index 3386f812186..fe1957d7c4e 100644
--- a/components/style/lib.rs
+++ b/components/style/lib.rs
@@ -56,6 +56,7 @@ extern crate log;
#[allow(unused_extern_crates)]
#[macro_use]
extern crate matches;
+extern crate num_integer;
extern crate num_traits;
extern crate ordered_float;
extern crate quickersort;
@@ -101,6 +102,7 @@ pub mod sequential;
pub mod sink;
pub mod str;
pub mod stylesheets;
+pub mod thread_state;
mod tid;
pub mod timer;
pub mod traversal;
diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs
index 0c717ee678c..0676df08c57 100644
--- a/components/style/properties/gecko.mako.rs
+++ b/components/style/properties/gecko.mako.rs
@@ -937,6 +937,32 @@ fn static_assert() {
</%self:impl_trait>
+<%def name="simple_background_array_property(name, field_name)">
+ pub fn copy_background_${name}_from(&mut self, other: &Self) {
+ unsafe {
+ Gecko_EnsureImageLayersLength(&mut self.gecko.mImage, other.gecko.mImage.mLayers.len());
+ }
+ for (layer, other) in self.gecko.mImage.mLayers.iter_mut()
+ .zip(other.gecko.mImage.mLayers.iter())
+ .take(other.gecko.mImage.${field_name}Count as usize) {
+ layer.${field_name} = other.${field_name};
+ }
+ self.gecko.mImage.${field_name}Count = other.gecko.mImage.${field_name}Count;
+ }
+
+ pub fn set_background_${name}(&mut self, v: longhands::background_${name}::computed_value::T) {
+ unsafe {
+ Gecko_EnsureImageLayersLength(&mut self.gecko.mImage, v.0.len());
+ }
+
+ self.gecko.mImage.${field_name}Count = v.0.len() as u32;
+ for (servo, geckolayer) in v.0.into_iter().zip(self.gecko.mImage.mLayers.iter_mut()) {
+ geckolayer.${field_name} = {
+ ${caller.body()}
+ };
+ }
+ }
+</%def>
// TODO: Gecko accepts lists in most background-related properties. We just use
// the first element (which is the common case), but at some point we want to
// add support for parsing these lists in servo and pushing to nsTArray's.
@@ -950,109 +976,105 @@ fn static_assert() {
<% impl_color("background_color", "mBackgroundColor", need_clone=True) %>
- pub fn copy_background_repeat_from(&mut self, other: &Self) {
- self.gecko.mImage.mRepeatCount = cmp::min(1, other.gecko.mImage.mRepeatCount);
- self.gecko.mImage.mLayers.mFirstElement.mRepeat =
- other.gecko.mImage.mLayers.mFirstElement.mRepeat;
- }
-
- pub fn set_background_repeat(&mut self, v: longhands::background_repeat::computed_value::T) {
- use properties::longhands::background_repeat::computed_value::T;
- use gecko_bindings::structs::{NS_STYLE_IMAGELAYER_REPEAT_REPEAT, NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT};
+ <%self:simple_background_array_property name="repeat" field_name="mRepeat">
+ use properties::longhands::background_repeat::single_value::computed_value::T;
use gecko_bindings::structs::nsStyleImageLayers_Repeat;
- let (repeat_x, repeat_y) = match v {
- T::repeat_x => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT,
- NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT),
- T::repeat_y => (NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT,
- NS_STYLE_IMAGELAYER_REPEAT_REPEAT),
- T::repeat => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT,
- NS_STYLE_IMAGELAYER_REPEAT_REPEAT),
- T::no_repeat => (NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT,
- NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT),
- };
+ use gecko_bindings::structs::NS_STYLE_IMAGELAYER_REPEAT_REPEAT;
+ use gecko_bindings::structs::NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT;
- self.gecko.mImage.mRepeatCount = 1;
- self.gecko.mImage.mLayers.mFirstElement.mRepeat = nsStyleImageLayers_Repeat {
- mXRepeat: repeat_x as u8,
- mYRepeat: repeat_y as u8,
+ let (repeat_x, repeat_y) = match servo {
+ T::repeat_x => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT,
+ NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT),
+ T::repeat_y => (NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT,
+ NS_STYLE_IMAGELAYER_REPEAT_REPEAT),
+ T::repeat => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT,
+ NS_STYLE_IMAGELAYER_REPEAT_REPEAT),
+ T::no_repeat => (NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT,
+ NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT),
};
- }
-
- pub fn copy_background_clip_from(&mut self, other: &Self) {
- self.gecko.mImage.mClipCount = cmp::min(1, other.gecko.mImage.mClipCount);
- self.gecko.mImage.mLayers.mFirstElement.mClip =
- other.gecko.mImage.mLayers.mFirstElement.mClip;
- }
+ nsStyleImageLayers_Repeat {
+ mXRepeat: repeat_x as u8,
+ mYRepeat: repeat_y as u8,
+ }
+ </%self:simple_background_array_property>
- pub fn set_background_clip(&mut self, v: longhands::background_clip::computed_value::T) {
- use properties::longhands::background_clip::computed_value::T;
- self.gecko.mImage.mClipCount = 1;
+ <%self:simple_background_array_property name="clip" field_name="mClip">
+ use properties::longhands::background_clip::single_value::computed_value::T;
- // TODO: Gecko supports background-clip: text, but just on -webkit-
- // prefixed properties.
- self.gecko.mImage.mLayers.mFirstElement.mClip = match v {
+ match servo {
T::border_box => structs::NS_STYLE_IMAGELAYER_CLIP_BORDER as u8,
T::padding_box => structs::NS_STYLE_IMAGELAYER_CLIP_PADDING as u8,
T::content_box => structs::NS_STYLE_IMAGELAYER_CLIP_CONTENT as u8,
- };
- }
-
- pub fn copy_background_origin_from(&mut self, other: &Self) {
- self.gecko.mImage.mOriginCount = cmp::min(1, other.gecko.mImage.mOriginCount);
- self.gecko.mImage.mLayers.mFirstElement.mOrigin =
- other.gecko.mImage.mLayers.mFirstElement.mOrigin;
- }
+ }
+ </%self:simple_background_array_property>
- pub fn set_background_origin(&mut self, v: longhands::background_origin::computed_value::T) {
- use properties::longhands::background_origin::computed_value::T;
+ <%self:simple_background_array_property name="origin" field_name="mOrigin">
+ use properties::longhands::background_origin::single_value::computed_value::T;
- self.gecko.mImage.mOriginCount = 1;
- self.gecko.mImage.mLayers.mFirstElement.mOrigin = match v {
+ match servo {
T::border_box => structs::NS_STYLE_IMAGELAYER_ORIGIN_BORDER as u8,
T::padding_box => structs::NS_STYLE_IMAGELAYER_ORIGIN_PADDING as u8,
T::content_box => structs::NS_STYLE_IMAGELAYER_ORIGIN_CONTENT as u8,
- };
- }
-
- pub fn copy_background_attachment_from(&mut self, other: &Self) {
- self.gecko.mImage.mAttachmentCount = cmp::min(1, other.gecko.mImage.mAttachmentCount);
- self.gecko.mImage.mLayers.mFirstElement.mAttachment =
- other.gecko.mImage.mLayers.mFirstElement.mAttachment;
- }
+ }
+ </%self:simple_background_array_property>
- pub fn set_background_attachment(&mut self, v: longhands::background_attachment::computed_value::T) {
- use properties::longhands::background_attachment::computed_value::T;
+ <%self:simple_background_array_property name="attachment" field_name="mAttachment">
+ use properties::longhands::background_attachment::single_value::computed_value::T;
- self.gecko.mImage.mAttachmentCount = 1;
- self.gecko.mImage.mLayers.mFirstElement.mAttachment = match v {
+ match servo {
T::scroll => structs::NS_STYLE_IMAGELAYER_ATTACHMENT_SCROLL as u8,
T::fixed => structs::NS_STYLE_IMAGELAYER_ATTACHMENT_FIXED as u8,
T::local => structs::NS_STYLE_IMAGELAYER_ATTACHMENT_LOCAL as u8,
- };
- }
+ }
+ </%self:simple_background_array_property>
pub fn copy_background_position_from(&mut self, other: &Self) {
self.gecko.mImage.mPositionXCount = cmp::min(1, other.gecko.mImage.mPositionXCount);
self.gecko.mImage.mPositionYCount = cmp::min(1, other.gecko.mImage.mPositionYCount);
self.gecko.mImage.mLayers.mFirstElement.mPosition =
other.gecko.mImage.mLayers.mFirstElement.mPosition;
+ unsafe {
+ Gecko_EnsureImageLayersLength(&mut self.gecko.mImage, other.gecko.mImage.mLayers.len());
+ }
+ for (layer, other) in self.gecko.mImage.mLayers.iter_mut()
+ .zip(other.gecko.mImage.mLayers.iter())
+ .take(other.gecko.mImage.mPositionXCount as usize) {
+ layer.mPosition.mXPosition = other.mPosition.mXPosition;
+ }
+ for (layer, other) in self.gecko.mImage.mLayers.iter_mut()
+ .zip(other.gecko.mImage.mLayers.iter())
+ .take(other.gecko.mImage.mPositionYCount as usize) {
+ layer.mPosition.mYPosition = other.mPosition.mYPosition;
+ }
+ self.gecko.mImage.mPositionXCount = other.gecko.mImage.mPositionXCount;
+ self.gecko.mImage.mPositionYCount = other.gecko.mImage.mPositionYCount;
}
pub fn clone_background_position(&self) -> longhands::background_position::computed_value::T {
use values::computed::position::Position;
- let position = &self.gecko.mImage.mLayers.mFirstElement.mPosition;
- longhands::background_position::computed_value::T(Position {
- horizontal: position.mXPosition.into(),
- vertical: position.mYPosition.into(),
- })
+ longhands::background_position::computed_value::T(
+ self.gecko.mImage.mLayers.iter()
+ .take(self.gecko.mImage.mPositionXCount as usize)
+ .take(self.gecko.mImage.mPositionYCount as usize)
+ .map(|position| Position {
+ horizontal: position.mPosition.mXPosition.into(),
+ vertical: position.mPosition.mYPosition.into(),
+ })
+ .collect()
+ )
}
pub fn set_background_position(&mut self, v: longhands::background_position::computed_value::T) {
- let position = &mut self.gecko.mImage.mLayers.mFirstElement.mPosition;
- position.mXPosition = v.0.horizontal.into();
- position.mYPosition = v.0.vertical.into();
- self.gecko.mImage.mPositionXCount = 1;
- self.gecko.mImage.mPositionYCount = 1;
+ unsafe {
+ Gecko_EnsureImageLayersLength(&mut self.gecko.mImage, v.0.len());
+ }
+
+ self.gecko.mImage.mPositionXCount = v.0.len() as u32;
+ self.gecko.mImage.mPositionYCount = v.0.len() as u32;
+ for (servo, geckolayer) in v.0.into_iter().zip(self.gecko.mImage.mLayers.iter_mut()) {
+ geckolayer.mPosition.mXPosition = servo.horizontal.into();
+ geckolayer.mPosition.mYPosition = servo.vertical.into();
+ }
}
pub fn copy_background_image_from(&mut self, other: &Self) {
@@ -1156,6 +1178,24 @@ fn static_assert() {
}
}
+
+ pub fn fill_arrays(&mut self) {
+ use gecko_bindings::bindings::Gecko_FillAllBackgroundLists;
+ use std::cmp;
+ let mut max_len = 1;
+ % for member in "mRepeat mClip mOrigin mAttachment mPositionX mPositionY mImage".split():
+ max_len = cmp::max(max_len, self.gecko.mImage.${member}Count);
+ % endfor
+
+ // XXXManishearth Gecko does an optimization here where it only
+ // fills things in if any of the properties have been set
+
+ unsafe {
+ // While we could do this manually, we'd need to also manually
+ // run all the copy constructors, so we just delegate to gecko
+ Gecko_FillAllBackgroundLists(&mut self.gecko.mImage, max_len);
+ }
+ }
</%self:impl_trait>
<%self:impl_trait style_struct_name="List" skip_longhands="list-style-type" skip_additionals="*">
diff --git a/components/style/properties/helpers.mako.rs b/components/style/properties/helpers.mako.rs
index acb4504eea9..43b3d7bda17 100644
--- a/components/style/properties/helpers.mako.rs
+++ b/components/style/properties/helpers.mako.rs
@@ -69,10 +69,10 @@
${caller.body()}
}
pub mod computed_value {
- use super::single_value;
+ pub use super::single_value::computed_value as single_value;
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
- pub struct T(pub Vec<single_value::computed_value::T>);
+ pub struct T(pub Vec<single_value::T>);
}
impl ToCss for computed_value::T {
@@ -285,8 +285,8 @@
}
</%def>
-<%def name="single_keyword(name, values, **kwargs)">
- <%call expr="single_keyword_computed(name, values, **kwargs)">
+<%def name="single_keyword(name, values, vector=False, **kwargs)">
+ <%call expr="single_keyword_computed(name, values, vector, **kwargs)">
use values::computed::ComputedValueAsSpecified;
use values::NoViewportPercentage;
impl ComputedValueAsSpecified for SpecifiedValue {}
@@ -294,16 +294,16 @@
</%call>
</%def>
-<%def name="single_keyword_computed(name, values, **kwargs)">
+<%def name="single_keyword_computed(name, values, vector=False, **kwargs)">
<%
keyword_kwargs = {a: kwargs.pop(a, None) for a in [
'gecko_constant_prefix', 'gecko_enum_prefix',
'extra_gecko_values', 'extra_servo_values',
]}
%>
- <%call expr="longhand(name, keyword=Keyword(name, values, **keyword_kwargs), **kwargs)">
+
+ <%def name="inner_body()">
pub use self::computed_value::T as SpecifiedValue;
- ${caller.body()}
pub mod computed_value {
define_css_keyword_enum! { T:
% for value in data.longhands_by_name[name].keyword.values_for(product):
@@ -316,11 +316,26 @@
computed_value::T::${to_rust_ident(values.split()[0])}
}
#[inline]
+ pub fn get_initial_specified_value() -> SpecifiedValue {
+ get_initial_value()
+ }
+ #[inline]
pub fn parse(_context: &ParserContext, input: &mut Parser)
-> Result<SpecifiedValue, ()> {
computed_value::T::parse(input)
}
- </%call>
+ </%def>
+ % if vector:
+ <%call expr="vector_longhand(name, keyword=Keyword(name, values, **keyword_kwargs), **kwargs)">
+ ${inner_body()}
+ ${caller.body()}
+ </%call>
+ % else:
+ <%call expr="longhand(name, keyword=Keyword(name, values, **keyword_kwargs), **kwargs)">
+ ${inner_body()}
+ ${caller.body()}
+ </%call>
+ % endif
</%def>
<%def name="keyword_list(name, values, **kwargs)">
@@ -464,6 +479,36 @@
}
}
+ impl<'a> ToCss for LonghandsToSerialize<'a> {
+ fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ let mut all_inherit = true;
+ let mut all_initial = true;
+ let mut with_variables = false;
+ % for sub_property in shorthand.sub_properties:
+ match *self.${sub_property.ident} {
+ DeclaredValue::Initial => all_inherit = false,
+ DeclaredValue::Inherit => all_initial = false,
+ DeclaredValue::WithVariables {..} => with_variables = true,
+ DeclaredValue::Value(..) => {
+ all_initial = false;
+ all_inherit = false;
+ }
+ }
+ % endfor
+
+ if with_variables {
+ // We don't serialize shorthands with variables
+ dest.write_str("")
+ } else if all_inherit {
+ dest.write_str("inherit")
+ } else if all_initial {
+ dest.write_str("initial")
+ } else {
+ self.to_css_declared(dest)
+ }
+ }
+ }
+
pub fn parse(context: &ParserContext, input: &mut Parser,
declarations: &mut Vec<PropertyDeclaration>)
@@ -526,8 +571,8 @@
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
super::serialize_four_sides(
dest,
self.${to_rust_ident(sub_property_pattern % 'top')},
diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs
index 3ba52cecef9..e3d0a1a3db5 100644
--- a/components/style/properties/helpers/animated_properties.mako.rs
+++ b/components/style/properties/helpers/animated_properties.mako.rs
@@ -155,6 +155,18 @@ pub trait Interpolate: Sized {
fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()>;
}
+/// https://drafts.csswg.org/css-transitions/#animtype-repeatable-list
+pub trait RepeatableListInterpolate: Interpolate {}
+
+impl<T: RepeatableListInterpolate> Interpolate for Vec<T> {
+ fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()> {
+ use num_integer::lcm;
+ let len = lcm(self.len(), other.len());
+ self.iter().cycle().zip(other.iter().cycle()).take(len).map(|(me, you)| {
+ me.interpolate(you, time)
+ }).collect()
+ }
+}
/// https://drafts.csswg.org/css-transitions/#animtype-number
impl Interpolate for Au {
#[inline]
@@ -296,6 +308,14 @@ impl Interpolate for BorderSpacing {
}
}
+impl Interpolate for BackgroundSize {
+ #[inline]
+ fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()> {
+ self.0.interpolate(&other.0, time).map(BackgroundSize)
+ }
+}
+
+
/// https://drafts.csswg.org/css-transitions/#animtype-color
impl Interpolate for RGBA {
#[inline]
@@ -496,6 +516,8 @@ impl Interpolate for Position {
}
}
+impl RepeatableListInterpolate for Position {}
+
impl Interpolate for BackgroundPosition {
#[inline]
fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()> {
@@ -503,21 +525,6 @@ impl Interpolate for BackgroundPosition {
}
}
-impl Interpolate for BackgroundSize {
- fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()> {
- use properties::longhands::background_size::computed_value::ExplicitSize;
- match (self, other) {
- (&BackgroundSize::Explicit(ref me), &BackgroundSize::Explicit(ref other)) => {
- Ok(BackgroundSize::Explicit(ExplicitSize {
- width: try!(me.width.interpolate(&other.width, time)),
- height: try!(me.height.interpolate(&other.height, time)),
- }))
- }
- _ => Err(()),
- }
- }
-}
-
/// https://drafts.csswg.org/css-transitions/#animtype-shadow-list
impl Interpolate for TextShadow {
#[inline]
diff --git a/components/style/properties/longhand/background.mako.rs b/components/style/properties/longhand/background.mako.rs
index 1a0f2aaeffe..9ad9daf4262 100644
--- a/components/style/properties/longhand/background.mako.rs
+++ b/components/style/properties/longhand/background.mako.rs
@@ -10,7 +10,7 @@ ${helpers.predefined_type("background-color", "CSSColor",
"::cssparser::Color::RGBA(::cssparser::RGBA { red: 0., green: 0., blue: 0., alpha: 0. }) /* transparent */",
animatable=True)}
-<%helpers:vector_longhand gecko_only="True" name="background-image" animatable="False">
+<%helpers:vector_longhand name="background-image" animatable="False">
use cssparser::ToCss;
use std::fmt;
use values::specified::Image;
@@ -54,6 +54,10 @@ ${helpers.predefined_type("background-color", "CSSColor",
pub fn get_initial_value() -> computed_value::T {
computed_value::T(None)
}
+ #[inline]
+ pub fn get_initial_specified_value() -> SpecifiedValue {
+ SpecifiedValue(None)
+ }
pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> {
if input.try(|input| input.expect_ident_matching("none")).is_ok() {
Ok(SpecifiedValue(None))
@@ -75,7 +79,7 @@ ${helpers.predefined_type("background-color", "CSSColor",
}
</%helpers:vector_longhand>
-<%helpers:longhand name="background-position" animatable="True">
+<%helpers:vector_longhand name="background-position" animatable="True">
use cssparser::ToCss;
use std::fmt;
use values::LocalToCss;
@@ -84,75 +88,57 @@ ${helpers.predefined_type("background-color", "CSSColor",
pub mod computed_value {
use values::computed::position::Position;
+ use properties::animated_properties::{Interpolate, RepeatableListInterpolate};
- #[derive(PartialEq, Copy, Clone, Debug)]
- #[cfg_attr(feature = "servo", derive(HeapSizeOf))]
- pub struct T(pub Position);
- }
-
- impl HasViewportPercentage for SpecifiedValue {
- fn has_viewport_percentage(&self) -> bool {
- self.0.has_viewport_percentage()
- }
+ pub type T = Position;
}
- #[derive(Debug, Clone, PartialEq, Copy)]
- #[cfg_attr(feature = "servo", derive(HeapSizeOf))]
- pub struct SpecifiedValue(pub Position);
-
- impl ToCss for SpecifiedValue {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- self.0.to_css(dest)
- }
- }
-
- impl ToCss for computed_value::T {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- self.0.to_css(dest)
- }
- }
-
- impl ToComputedValue for SpecifiedValue {
- type ComputedValue = computed_value::T;
-
- #[inline]
- fn to_computed_value(&self, context: &Context) -> computed_value::T {
- computed_value::T(self.0.to_computed_value(context))
- }
- }
+ pub type SpecifiedValue = Position;
#[inline]
pub fn get_initial_value() -> computed_value::T {
use values::computed::position::Position;
- computed_value::T(Position {
+ Position {
horizontal: computed::LengthOrPercentage::Percentage(0.0),
vertical: computed::LengthOrPercentage::Percentage(0.0),
- })
+ }
+ }
+ #[inline]
+ pub fn get_initial_specified_value() -> SpecifiedValue {
+ use values::specified::Percentage;
+ Position {
+ horizontal: specified::LengthOrPercentage::Percentage(Percentage(0.0)),
+ vertical: specified::LengthOrPercentage::Percentage(Percentage(0.0)),
+ }
}
pub fn parse(_context: &ParserContext, input: &mut Parser)
-> Result<SpecifiedValue, ()> {
- Ok(SpecifiedValue(try!(Position::parse(input))))
+ Ok(try!(Position::parse(input)))
}
-</%helpers:longhand>
+</%helpers:vector_longhand>
${helpers.single_keyword("background-repeat",
"repeat repeat-x repeat-y no-repeat",
+ vector=True,
animatable=False)}
${helpers.single_keyword("background-attachment",
"scroll fixed" + (" local" if product == "gecko" else ""),
+ vector=True,
animatable=False)}
${helpers.single_keyword("background-clip",
"border-box padding-box content-box",
+ vector=True,
animatable=False)}
${helpers.single_keyword("background-origin",
"padding-box border-box content-box",
+ vector=True,
animatable=False)}
-<%helpers:longhand name="background-size" animatable="True">
+<%helpers:vector_longhand name="background-size" animatable="True">
use cssparser::{ToCss, Token};
use std::ascii::AsciiExt;
use std::fmt;
@@ -160,6 +146,7 @@ ${helpers.single_keyword("background-origin",
pub mod computed_value {
use values::computed::LengthOrPercentageOrAuto;
+ use properties::animated_properties::{Interpolate, RepeatableListInterpolate};
#[derive(PartialEq, Clone, Debug)]
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
@@ -175,6 +162,23 @@ ${helpers.single_keyword("background-origin",
Cover,
Contain,
}
+
+ impl RepeatableListInterpolate for T {}
+
+ impl Interpolate for T {
+ fn interpolate(&self, other: &Self, time: f64) -> Result<Self, ()> {
+ use properties::longhands::background_size::single_value::computed_value::ExplicitSize;
+ match (self, other) {
+ (&T::Explicit(ref me), &T::Explicit(ref other)) => {
+ Ok(T::Explicit(ExplicitSize {
+ width: try!(me.width.interpolate(&other.width, time)),
+ height: try!(me.height.interpolate(&other.height, time)),
+ }))
+ }
+ _ => Err(()),
+ }
+ }
+ }
}
impl ToCss for computed_value::T {
@@ -268,6 +272,13 @@ ${helpers.single_keyword("background-origin",
height: computed::LengthOrPercentageOrAuto::Auto,
})
}
+ #[inline]
+ pub fn get_initial_specified_value() -> SpecifiedValue {
+ SpecifiedValue::Explicit(SpecifiedExplicitSize {
+ width: specified::LengthOrPercentageOrAuto::Auto,
+ height: specified::LengthOrPercentageOrAuto::Auto,
+ })
+ }
pub fn parse(_: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue,()> {
let width;
@@ -305,4 +316,4 @@ ${helpers.single_keyword("background-origin",
height: height,
}))
}
-</%helpers:longhand>
+</%helpers:vector_longhand>
diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs
index b0c92710a06..1c3c87501e3 100644
--- a/components/style/properties/properties.mako.rs
+++ b/components/style/properties/properties.mako.rs
@@ -288,9 +288,6 @@ pub struct PropertyDeclarationBlock {
#[cfg_attr(feature = "servo", ignore_heap_size_of = "#7038")]
pub declarations: Arc<Vec<(PropertyDeclaration, Importance)>>,
- /// The number of entries in `self.declaration` with `Importance::Normal`
- pub normal_count: u32,
-
/// The number of entries in `self.declaration` with `Importance::Important`
pub important_count: u32,
}
@@ -548,7 +545,6 @@ impl<'a, 'b> DeclarationParser for PropertyDeclarationParser<'a, 'b> {
pub fn parse_property_declaration_list(context: &ParserContext, input: &mut Parser)
-> PropertyDeclarationBlock {
let mut declarations = Vec::new();
- let mut normal_count = 0;
let mut important_count = 0;
let parser = PropertyDeclarationParser {
context: context,
@@ -559,8 +555,6 @@ pub fn parse_property_declaration_list(context: &ParserContext, input: &mut Pars
Ok((results, importance)) => {
if importance.important() {
important_count += results.len() as u32;
- } else {
- normal_count += results.len() as u32;
}
declarations.extend(results.into_iter().map(|d| (d, importance)))
}
@@ -574,7 +568,6 @@ pub fn parse_property_declaration_list(context: &ParserContext, input: &mut Pars
}
let mut block = PropertyDeclarationBlock {
declarations: Arc::new(declarations),
- normal_count: normal_count,
important_count: important_count,
};
deduplicate_property_declarations(&mut block);
@@ -605,13 +598,11 @@ fn deduplicate_property_declarations(block: &mut PropertyDeclarationBlock) {
remove_one(&mut deduplicated, |d| {
matches!(d, &(PropertyDeclaration::${property.camel_case}(..), _))
});
- block.normal_count -= 1;
}
seen_important.set_${property.ident}()
} else {
if seen_normal.get_${property.ident}() ||
seen_important.get_${property.ident}() {
- block.normal_count -= 1;
continue
}
seen_normal.set_${property.ident}()
@@ -631,13 +622,11 @@ fn deduplicate_property_declarations(block: &mut PropertyDeclarationBlock) {
remove_one(&mut deduplicated, |d| {
matches!(d, &(PropertyDeclaration::Custom(ref n, _), _) if n == name)
});
- block.normal_count -= 1;
}
seen_custom_important.push(name.clone())
} else {
if seen_custom_normal.contains(name) ||
seen_custom_important.contains(name) {
- block.normal_count -= 1;
continue
}
seen_custom_normal.push(name.clone())
@@ -2045,6 +2034,10 @@ pub fn cascade(viewport_size: Size2D<Au>,
}
% endfor
+ % if product == "gecko":
+ style.mutate_background().fill_arrays();
+ % endif
+
// The initial value of outline width may be changed at computed value time.
if style.get_outline().clone_outline_style().none_or_hidden() &&
style.get_outline().outline_has_nonzero_width() {
diff --git a/components/style/properties/shorthand/background.mako.rs b/components/style/properties/shorthand/background.mako.rs
index 853e5554937..f507af9ec56 100644
--- a/components/style/properties/shorthand/background.mako.rs
+++ b/components/style/properties/shorthand/background.mako.rs
@@ -12,172 +12,204 @@
use properties::longhands::{background_image, background_size, background_origin, background_clip};
pub fn parse_value(context: &ParserContext, input: &mut Parser) -> Result<Longhands, ()> {
- let mut color = None;
- let mut image = None;
- let mut position = None;
- let mut repeat = None;
- let mut size = None;
- let mut attachment = None;
- let mut any = false;
- let mut origin = None;
- let mut clip = None;
-
- loop {
- if position.is_none() {
- if let Ok(value) = input.try(|input| background_position::parse(context, input)) {
- position = Some(value);
- any = true;
-
- // Parse background size, if applicable.
- size = input.try(|input| {
- try!(input.expect_delim('/'));
- background_size::parse(context, input)
- }).ok();
-
- continue
- }
- }
- if color.is_none() {
+ let mut background_color = None;
+
+ % for name in "image position repeat size attachment origin clip".split():
+ let mut background_${name} = background_${name}::SpecifiedValue(Vec::new());
+ % endfor
+ try!(input.parse_comma_separated(|input| {
+ % for name in "image position repeat size attachment origin clip".split():
+ let mut ${name} = None;
+ % endfor
+ loop {
if let Ok(value) = input.try(|input| background_color::parse(context, input)) {
- color = Some(value);
- any = true;
- continue
- }
- }
- if image.is_none() {
- if let Ok(value) = input.try(|input| background_image::parse(context, input)) {
- image = Some(value);
- any = true;
- continue
+ if background_color.is_none() {
+ background_color = Some(value);
+ continue
+ } else {
+ // color can only be the last element
+ return Err(())
+ }
}
- }
- if repeat.is_none() {
- if let Ok(value) = input.try(|input| background_repeat::parse(context, input)) {
- repeat = Some(value);
- any = true;
- continue
+ if position.is_none() {
+ if let Ok(value) = input.try(|input| background_position::single_value
+ ::parse(context, input)) {
+ position = Some(value);
+
+ // Parse background size, if applicable.
+ size = input.try(|input| {
+ try!(input.expect_delim('/'));
+ background_size::single_value::parse(context, input)
+ }).ok();
+
+ continue
+ }
}
+ % for name in "image repeat attachment origin clip".split():
+ if ${name}.is_none() {
+ if let Ok(value) = input.try(|input| background_${name}::single_value
+ ::parse(context, input)) {
+ ${name} = Some(value);
+ continue
+ }
+ }
+ % endfor
+ break
}
- if attachment.is_none() {
- if let Ok(value) = input.try(|input| background_attachment::parse(context, input)) {
- attachment = Some(value);
- any = true;
- continue
- }
+ let mut any = false;
+ % for name in "image position repeat size attachment origin clip".split():
+ any = any || ${name}.is_some();
+ % endfor
+ any = any || background_color.is_some();
+ if any {
+ % for name in "image position repeat size attachment origin clip".split():
+ if let Some(bg_${name}) = ${name} {
+ background_${name}.0.push(bg_${name});
+ } else {
+ background_${name}.0.push(background_${name}::single_value
+ ::get_initial_specified_value());
+ }
+ % endfor
+ Ok(())
+ } else {
+ Err(())
}
- if origin.is_none() {
- if let Ok(value) = input.try(|input| background_origin::parse(context, input)) {
- origin = Some(value);
- any = true;
- continue
+ }));
+
+ Ok(Longhands {
+ background_color: background_color,
+ background_image: Some(background_image),
+ background_position: Some(background_position),
+ background_repeat: Some(background_repeat),
+ background_attachment: Some(background_attachment),
+ background_size: Some(background_size),
+ background_origin: Some(background_origin),
+ background_clip: Some(background_clip),
+ })
+ }
+
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ // mako doesn't like ampersands following `<`
+ fn extract_value<T>(x: &DeclaredValue<T>) -> Option< &T> {
+ match *x {
+ DeclaredValue::Value(ref val) => Some(val),
+ _ => None,
}
}
- if clip.is_none() {
- if let Ok(value) = input.try(|input| background_clip::parse(context, input)) {
- clip = Some(value);
- any = true;
- continue
- }
+ use std::cmp;
+ let mut len = 0;
+ % for name in "image position repeat size attachment origin clip".split():
+ len = cmp::max(len, extract_value(self.background_${name}).map(|i| i.0.len())
+ .unwrap_or(0));
+ % endfor
+
+ // There should be at least one declared value
+ if len == 0 {
+ return dest.write_str("")
}
- break
- }
-
- if any {
- Ok(Longhands {
- background_color: color,
- background_image: image,
- background_position: position,
- background_repeat: repeat,
- background_attachment: attachment,
- background_size: size,
- background_origin: origin,
- background_clip: clip,
- })
- } else {
- Err(())
- }
- }
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
- match *self.background_color {
- DeclaredValue::Value(ref color) => {
- try!(color.to_css(dest));
- },
- _ => {
- try!(write!(dest, "transparent"));
+ let mut first = true;
+ for i in 0..len {
+ % for name in "image position repeat size attachment origin clip".split():
+ let ${name} = if let DeclaredValue::Value(ref arr) = *self.background_${name} {
+ arr.0.get(i % arr.0.len())
+ } else {
+ None
+ };
+ % endfor
+ let color = if i == len - 1 {
+ Some(self.background_color)
+ } else {
+ None
+ };
+
+ if first {
+ first = false;
+ } else {
+ try!(write!(dest, ", "));
}
- };
+ match color {
+ Some(&DeclaredValue::Value(ref color)) => {
+ try!(color.to_css(dest));
+ try!(write!(dest, " "));
+ },
+ Some(_) => {
+ try!(write!(dest, "transparent "));
+ }
+ // Not yet the last one
+ None => ()
+ };
- try!(write!(dest, " "));
- match *self.background_image {
- DeclaredValue::Value(ref image) => {
+ if let Some(image) = image {
try!(image.to_css(dest));
- },
- _ => {
+ } else {
try!(write!(dest, "none"));
}
- };
- try!(write!(dest, " "));
+ try!(write!(dest, " "));
- try!(self.background_repeat.to_css(dest));
+ if let Some(repeat) = repeat {
+ try!(repeat.to_css(dest));
+ } else {
+ try!(write!(dest, "repeat"));
+ }
- try!(write!(dest, " "));
+ try!(write!(dest, " "));
- match *self.background_attachment {
- DeclaredValue::Value(ref attachment) => {
+ if let Some(attachment) = attachment {
try!(attachment.to_css(dest));
- },
- _ => {
+ } else {
try!(write!(dest, "scroll"));
}
- };
- try!(write!(dest, " "));
+ try!(write!(dest, " "));
- try!(self.background_position.to_css(dest));
+ try!(position.unwrap_or(&background_position::single_value
+ ::get_initial_specified_value())
+ .to_css(dest));
- if let DeclaredValue::Value(ref size) = *self.background_size {
- try!(write!(dest, " / "));
- try!(size.to_css(dest));
- }
+ if let Some(size) = size {
+ try!(write!(dest, " / "));
+ try!(size.to_css(dest));
+ }
- match (self.background_origin, self.background_clip) {
- (&DeclaredValue::Value(ref origin), &DeclaredValue::Value(ref clip)) => {
- use properties::longhands::background_origin::computed_value::T as Origin;
- use properties::longhands::background_clip::computed_value::T as Clip;
-
- try!(write!(dest, " "));
-
- match (origin, clip) {
- (&Origin::padding_box, &Clip::padding_box) => {
- try!(origin.to_css(dest));
- },
- (&Origin::border_box, &Clip::border_box) => {
- try!(origin.to_css(dest));
- },
- (&Origin::content_box, &Clip::content_box) => {
- try!(origin.to_css(dest));
- },
- _ => {
- try!(origin.to_css(dest));
- try!(write!(dest, " "));
- try!(clip.to_css(dest));
+ match (origin, clip) {
+ (Some(origin), Some(clip)) => {
+ use properties::longhands::background_origin::single_value::computed_value::T as Origin;
+ use properties::longhands::background_clip::single_value::computed_value::T as Clip;
+
+ try!(write!(dest, " "));
+
+ match (origin, clip) {
+ (&Origin::padding_box, &Clip::padding_box) => {
+ try!(origin.to_css(dest));
+ },
+ (&Origin::border_box, &Clip::border_box) => {
+ try!(origin.to_css(dest));
+ },
+ (&Origin::content_box, &Clip::content_box) => {
+ try!(origin.to_css(dest));
+ },
+ _ => {
+ try!(origin.to_css(dest));
+ try!(write!(dest, " "));
+ try!(clip.to_css(dest));
+ }
}
- }
- },
- (&DeclaredValue::Value(ref origin), _) => {
- try!(write!(dest, " "));
- try!(origin.to_css(dest));
- },
- (_, &DeclaredValue::Value(ref clip)) => {
- try!(write!(dest, " "));
- try!(clip.to_css(dest));
- },
- _ => {}
- };
+ },
+ (Some(origin), _) => {
+ try!(write!(dest, " "));
+ try!(origin.to_css(dest));
+ },
+ (_, Some(clip)) => {
+ try!(write!(dest, " "));
+ try!(clip.to_css(dest));
+ },
+ _ => {}
+ };
+ }
Ok(())
diff --git a/components/style/properties/shorthand/border.mako.rs b/components/style/properties/shorthand/border.mako.rs
index f1d868b26cc..c29a6a2e7fb 100644
--- a/components/style/properties/shorthand/border.mako.rs
+++ b/components/style/properties/shorthand/border.mako.rs
@@ -25,8 +25,8 @@ ${helpers.four_sides_shorthand("border-style", "border-%s-style",
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
// extract tuple container values so that the different border widths
// can be compared via partial eq
% for side in ["top", "right", "bottom", "left"]:
@@ -102,8 +102,8 @@ pub fn parse_border(context: &ParserContext, input: &mut Parser)
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
super::serialize_directional_border(
dest,
self.border_${side}_width,
@@ -134,8 +134,8 @@ pub fn parse_border(context: &ParserContext, input: &mut Parser)
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
// If all longhands are all present, then all sides should be the same,
// so we can just one set of color/style/width
super::serialize_directional_border(
@@ -170,8 +170,8 @@ pub fn parse_border(context: &ParserContext, input: &mut Parser)
// TODO: I do not understand how border radius works with respect to the slashes /,
// so putting a default generic impl for now
// https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self.border_top_left_radius.to_css(dest));
try!(write!(dest, " "));
diff --git a/components/style/properties/shorthand/box.mako.rs b/components/style/properties/shorthand/box.mako.rs
index 0825a8fc314..2465a91ae8a 100644
--- a/components/style/properties/shorthand/box.mako.rs
+++ b/components/style/properties/shorthand/box.mako.rs
@@ -19,8 +19,8 @@
// Overflow does not behave like a normal shorthand. When overflow-x and overflow-y are not of equal
// values, they no longer use the shared property name "overflow".
// Other shorthands do not include their name in the to_css method
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
let x_and_y_equal = match (self.overflow_x, self.overflow_y) {
(&DeclaredValue::Value(ref x_value), &DeclaredValue::Value(ref y_container)) => {
*x_value == y_container.0
@@ -132,8 +132,8 @@ macro_rules! try_parse_one {
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self.transition_property.to_css(dest));
try!(write!(dest, " "));
@@ -268,8 +268,8 @@ macro_rules! try_parse_one {
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self.animation_duration.to_css(dest));
try!(write!(dest, " "));
diff --git a/components/style/properties/shorthand/column.mako.rs b/components/style/properties/shorthand/column.mako.rs
index 563ef210fdf..e8ccf00bf47 100644
--- a/components/style/properties/shorthand/column.mako.rs
+++ b/components/style/properties/shorthand/column.mako.rs
@@ -48,8 +48,8 @@
}
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self.column_width.to_css(dest));
try!(write!(dest, " "));
diff --git a/components/style/properties/shorthand/font.mako.rs b/components/style/properties/shorthand/font.mako.rs
index aae11eb3cf6..555b098e575 100644
--- a/components/style/properties/shorthand/font.mako.rs
+++ b/components/style/properties/shorthand/font.mako.rs
@@ -68,8 +68,8 @@
}
// This may be a bit off, unsure, possibly needs changes
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
if let DeclaredValue::Value(ref style) = *self.font_style {
try!(style.to_css(dest));
try!(write!(dest, " "));
diff --git a/components/style/properties/shorthand/inherited_text.mako.rs b/components/style/properties/shorthand/inherited_text.mako.rs
index e7c19127a15..64ef03b1138 100644
--- a/components/style/properties/shorthand/inherited_text.mako.rs
+++ b/components/style/properties/shorthand/inherited_text.mako.rs
@@ -15,8 +15,8 @@
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
self.overflow_wrap.to_css(dest)
}
}
diff --git a/components/style/properties/shorthand/list.mako.rs b/components/style/properties/shorthand/list.mako.rs
index 6e1abf337fe..955d93f7c16 100644
--- a/components/style/properties/shorthand/list.mako.rs
+++ b/components/style/properties/shorthand/list.mako.rs
@@ -92,8 +92,8 @@
}
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
match *self.list_style_position {
DeclaredValue::Initial => try!(write!(dest, "outside")),
_ => try!(self.list_style_position.to_css(dest))
diff --git a/components/style/properties/shorthand/outline.mako.rs b/components/style/properties/shorthand/outline.mako.rs
index c00294f45df..852fce2b292 100644
--- a/components/style/properties/shorthand/outline.mako.rs
+++ b/components/style/properties/shorthand/outline.mako.rs
@@ -49,8 +49,8 @@
}
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self.outline_width.to_css(dest));
try!(write!(dest, " "));
@@ -89,8 +89,8 @@
}
// TODO: Border radius for the radius shorthand is not implemented correctly yet
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self._moz_outline_radius_topleft.to_css(dest));
try!(write!(dest, " "));
diff --git a/components/style/properties/shorthand/position.mako.rs b/components/style/properties/shorthand/position.mako.rs
index 9fc33e00f42..5064c375215 100644
--- a/components/style/properties/shorthand/position.mako.rs
+++ b/components/style/properties/shorthand/position.mako.rs
@@ -38,8 +38,8 @@
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
match *self.flex_direction {
DeclaredValue::Initial => try!(write!(dest, "row")),
_ => try!(self.flex_direction.to_css(dest))
@@ -107,8 +107,8 @@
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
try!(self.flex_grow.to_css(dest));
try!(write!(dest, " "));
diff --git a/components/style/properties/shorthand/text.mako.rs b/components/style/properties/shorthand/text.mako.rs
index 2bcfbfcd7b9..d09e00b6ba4 100644
--- a/components/style/properties/shorthand/text.mako.rs
+++ b/components/style/properties/shorthand/text.mako.rs
@@ -46,8 +46,8 @@
})
}
- impl<'a> ToCss for LonghandsToSerialize<'a> {
- fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
+ impl<'a> LonghandsToSerialize<'a> {
+ fn to_css_declared<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write {
match *self.text_decoration_line {
DeclaredValue::Value(ref line) => {
try!(line.to_css(dest));
diff --git a/components/style/selector_matching.rs b/components/style/selector_matching.rs
index 781f2298c4a..a6457ccf574 100644
--- a/components/style/selector_matching.rs
+++ b/components/style/selector_matching.rs
@@ -162,8 +162,8 @@ impl Stylist {
// Take apart the StyleRule into individual Rules and insert
// them into the SelectorMap of that priority.
macro_rules! append(
- ($style_rule: ident, $priority: ident, $importance: expr, $count: ident) => {
- if $style_rule.declarations.$count > 0 {
+ ($style_rule: ident, $priority: ident, $importance: expr, $count: expr) => {
+ if $count > 0 {
for selector in &$style_rule.selectors {
let map = if let Some(ref pseudo) = selector.pseudo_element {
self.pseudos_map
@@ -191,6 +191,8 @@ impl Stylist {
for rule in stylesheet.effective_rules(&self.device) {
match *rule {
CSSRule::Style(ref style_rule) => {
+ let important_count = style_rule.declarations.important_count;
+ let normal_count = style_rule.declarations.declarations.len() as u32 - important_count;
append!(style_rule, normal, Importance::Normal, normal_count);
append!(style_rule, important, Importance::Important, important_count);
rules_source_order += 1;
@@ -394,7 +396,7 @@ impl Stylist {
// Step 4: Normal style attributes.
if let Some(ref sa) = style_attribute {
- if sa.normal_count > 0 {
+ if sa.declarations.len() as u32 - sa.important_count > 0 {
relations |= AFFECTED_BY_STYLE_ATTRIBUTE;
Push::push(
applicable_declarations,
diff --git a/components/util/thread_state.rs b/components/style/thread_state.rs
index 25e77ecbb45..25e77ecbb45 100644
--- a/components/util/thread_state.rs
+++ b/components/style/thread_state.rs
diff --git a/components/style/workqueue.rs b/components/style/workqueue.rs
index 0d2da58e93d..8202b5c322e 100644
--- a/components/style/workqueue.rs
+++ b/components/style/workqueue.rs
@@ -18,8 +18,8 @@ use deque::{self, Abort, Data, Empty, Stealer, Worker};
use rand::{Rng, XorShiftRng, weak_rng};
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::mpsc::{Receiver, Sender, channel};
+use thread_state;
use util::thread::spawn_named;
-use util::thread_state;
/// A unit of work.
///
diff --git a/components/util/lib.rs b/components/util/lib.rs
index abb02adb440..e56a0ad61d7 100644
--- a/components/util/lib.rs
+++ b/components/util/lib.rs
@@ -35,7 +35,6 @@ pub mod prefs;
#[cfg(feature = "servo")] pub mod remutex;
pub mod resource_files;
pub mod thread;
-pub mod thread_state;
pub fn servo_version() -> &'static str {
concat!("Servo ", env!("CARGO_PKG_VERSION"), env!("GIT_INFO"))
diff --git a/mach.bat b/mach.bat
index d98f7953934..e7cba6681bd 100644
--- a/mach.bat
+++ b/mach.bat
@@ -1,2 +1,19 @@
@echo off
+
+SET VS_VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat
+IF EXIST "%VS_VCVARS%" (
+ IF NOT DEFINED VisualStudioVersion (
+ IF EXIST "%ProgramFiles(x86)%" (
+ call "%VS_VCVARS%" x64
+ ) ELSE (
+ ECHO 32-bit Windows is currently unsupported.
+ EXIT /B
+ )
+ )
+) ELSE (
+ ECHO Visual Studio 2015 is not installed.
+ ECHO Download and install Visual Studio 2015 from https://www.visualstudio.com/
+ EXIT /B
+)
+
python mach %*
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index 674a04efeef..6dbc3320f5f 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -9,7 +9,7 @@ dependencies = [
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -20,7 +20,7 @@ dependencies = [
"style_traits 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -47,7 +47,7 @@ version = "0.1.1"
source = "git+https://github.com/servo/angle?branch=servo#832ffd74ac892682dfcaea27dc518130a72e280c"
dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -56,7 +56,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -67,7 +67,7 @@ version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -88,13 +88,13 @@ dependencies = [
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -105,10 +105,10 @@ dependencies = [
"backtrace-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-demangle 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-demangle 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -116,8 +116,8 @@ name = "backtrace-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -126,7 +126,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -159,7 +159,7 @@ name = "blurz"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "dbus 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dbus 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -174,7 +174,7 @@ dependencies = [
[[package]]
name = "browserhtml"
version = "0.1.17"
-source = "git+https://github.com/browserhtml/browserhtml?branch=crate#82ab69c8a83a34c9f81adef57255557b1a52412f"
+source = "git+https://github.com/browserhtml/browserhtml?branch=crate#aafbb0996b02d1fadd4713c96e3d22b542f175a1"
[[package]]
name = "byteorder"
@@ -192,7 +192,7 @@ dependencies = [
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"util 0.0.1",
@@ -221,7 +221,7 @@ name = "caseless"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -232,11 +232,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "cgl"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -244,7 +244,7 @@ name = "cmake"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -255,7 +255,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -273,7 +273,7 @@ dependencies = [
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -329,7 +329,7 @@ name = "content-blocker"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -351,7 +351,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -359,7 +359,7 @@ name = "core-foundation-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -368,7 +368,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -379,12 +379,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "crossbeam"
-version = "0.2.9"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -403,16 +403,16 @@ name = "dbghelp-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "dbus"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -435,7 +435,7 @@ dependencies = [
[[package]]
name = "device"
version = "0.0.1"
-source = "git+https://github.com/servo/devices#3c39846a019eeed939eb7090096631254e6b5efc"
+source = "git+https://github.com/servo/devices#09ab8682bddfa73ba36025a150625504212d34da"
dependencies = [
"blurz 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -446,7 +446,7 @@ version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -466,7 +466,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -480,7 +480,7 @@ name = "dlib"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libloading 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libloading 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -493,19 +493,11 @@ name = "dwmapi-sys"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
-name = "dylib"
-version = "0.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
name = "encoding"
version = "0.2.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -567,7 +559,7 @@ name = "enum_primitive"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -576,7 +568,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -586,7 +578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -605,7 +597,7 @@ name = "flate2"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -615,21 +607,31 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
+name = "fontsan"
+version = "0.3.2"
+source = "git+https://github.com/servo/fontsan#08bfa604bf0cc882d9b4385c57db65e200975b72"
+dependencies = [
+ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "freetype"
version = "0.1.0"
source = "git+https://github.com/servo/rust-freetype#d564ff90a3c69d987f5c015d7ec034cfaee21aff"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "fs2"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -646,14 +648,14 @@ name = "gaol"
version = "0.0.1"
source = "git+https://github.com/servo/gaol#545c703ebfe7a3a0d7129eb40981527f5d680860"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "gcc"
-version = "0.3.28"
+version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -661,7 +663,7 @@ name = "gdi32-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -683,6 +685,7 @@ dependencies = [
"core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fontsan 0.3.2 (git+https://github.com/servo/fontsan)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gfx_traits 0.0.1",
"harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -691,7 +694,7 @@ dependencies = [
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -705,7 +708,7 @@ dependencies = [
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "simd 0.1.0 (git+https://github.com/huonw/simd)",
+ "simd 0.1.1 (git+https://github.com/huonw/simd)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
@@ -783,13 +786,13 @@ dependencies = [
"net_traits 0.0.1",
"script_traits 0.0.1",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "servo-glutin 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo-glutin 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style_traits 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -799,7 +802,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -808,7 +811,7 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -817,7 +820,7 @@ name = "heapsize"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -830,17 +833,17 @@ name = "heartbeats-simple"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "heartbeats-simple-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "heartbeats-simple-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "heartbeats-simple-sys"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -898,7 +901,7 @@ dependencies = [
[[package]]
name = "hyper_serde"
-version = "0.1.4"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -919,17 +922,17 @@ dependencies = [
[[package]]
name = "image"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gif 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "jpeg-decoder 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "jpeg-decoder 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-rational 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-rational 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"png 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -941,7 +944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -954,11 +957,11 @@ name = "io-surface"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -968,7 +971,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bincode 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -981,7 +984,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "jpeg-decoder"
-version = "0.1.5"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -996,18 +999,18 @@ dependencies = [
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "kernel32-sys"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1026,7 +1029,7 @@ name = "layers"
version = "0.5.1"
source = "git+https://github.com/servo/rust-layers#9b90d76cf0bc108ef6b29dab42d2ea36dbd718f8"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1034,12 +1037,12 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1058,7 +1061,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1153,17 +1156,18 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.13"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "libloading"
-version = "0.2.2"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "target_build_utils 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1179,8 +1183,8 @@ name = "libz-sys"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1204,7 +1208,7 @@ name = "malloc_buf"
version = "0.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1217,7 +1221,7 @@ name = "memchr"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1225,10 +1229,10 @@ name = "memmap"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "fs2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fs2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1256,16 +1260,16 @@ name = "miniz-sys"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "mozjs_sys"
version = "0.0.0"
-source = "git+https://github.com/servo/mozjs#0f2ea3416044656e09f107b8f9e0d169264a7c77"
+source = "git+https://github.com/servo/mozjs#7cd66925e766ef7bc69888f167e6392fac46c54f"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"libz-sys 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1278,7 +1282,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1299,7 +1303,7 @@ dependencies = [
"devtools_traits 0.0.1",
"flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"immeta 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1315,7 +1319,7 @@ dependencies = [
"profile_traits 0.0.1",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
- "threadpool 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)",
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1328,13 +1332,13 @@ dependencies = [
[[package]]
name = "net2"
-version = "0.2.23"
+version = "0.2.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1346,13 +1350,13 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1366,26 +1370,26 @@ name = "nodrop"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "odds 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
"num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-bigint"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1395,7 +1399,7 @@ name = "num-integer"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1404,23 +1408,23 @@ version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-rational"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-bigint 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-bigint 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-traits"
-version = "0.1.32"
+version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1428,7 +1432,7 @@ name = "num_cpus"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1441,7 +1445,7 @@ dependencies = [
[[package]]
name = "odds"
-version = "0.2.12"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1449,7 +1453,7 @@ name = "offscreen_gl_context"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1457,7 +1461,7 @@ dependencies = [
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1471,20 +1475,20 @@ version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.7.17 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl-sys-extras 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "openssl-sys"
-version = "0.7.14"
+version = "0.7.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"libressl-pnacl-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1495,9 +1499,9 @@ name = "openssl-sys-extras"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.7.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1513,13 +1517,13 @@ name = "ordered-float"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "osmesa-sys"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"shared_library 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1582,7 +1586,7 @@ name = "pnacl-build-helper"
version = "1.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1602,11 +1606,11 @@ version = "0.0.1"
dependencies = [
"heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"profile_traits 0.0.1",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1649,10 +1653,10 @@ dependencies = [
[[package]]
name = "quickersort"
-version = "2.0.1"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1661,7 +1665,7 @@ name = "rand"
version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1670,7 +1674,7 @@ version = "0.0.1"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1698,24 +1702,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "regex"
-version = "0.1.71"
+version = "0.1.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
"utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex-syntax"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "rustc-demangle"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -1757,17 +1761,17 @@ dependencies = [
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"js 0.1.3 (git+https://github.com/servo/rust-mozjs)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mime 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"mime_guess 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1778,7 +1782,7 @@ dependencies = [
"range 0.0.1",
"ref_filter_map 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"ref_slice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"script_layout_interface 0.0.1",
"script_traits 0.0.1",
@@ -1810,7 +1814,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1837,10 +1841,10 @@ dependencies = [
"gfx_traits 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "hyper_serde 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hyper_serde 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.5.1 (git+https://github.com/servo/rust-layers)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1866,7 +1870,7 @@ dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1904,7 +1908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1938,7 +1942,7 @@ dependencies = [
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layout 0.0.1",
"layout_thread 0.0.1",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net 0.0.1",
@@ -1962,7 +1966,7 @@ name = "servo-egl"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1970,7 +1974,7 @@ name = "servo-fontconfig"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1995,31 +1999,31 @@ dependencies = [
[[package]]
name = "servo-glutin"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"android_glue 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cocoa 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwmapi-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "osmesa-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "osmesa-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"shared_library 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-kbd 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11-dl 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2027,19 +2031,19 @@ name = "servo-skia"
version = "0.20130412.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "servo-glutin 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo-glutin 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2048,7 +2052,7 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2056,7 +2060,7 @@ name = "shell32-sys"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2067,8 +2071,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "simd"
-version = "0.1.0"
-source = "git+https://github.com/huonw/simd#03de1cd0a278ab902b4beb402d57505f3797ea56"
+version = "0.1.1"
+source = "git+https://github.com/huonw/simd#0d85d25d5cc3788062b252e31ad48dd19e805e90"
[[package]]
name = "smallvec"
@@ -2110,15 +2114,16 @@ dependencies = [
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"ordered-float 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
- "quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2147,15 +2152,23 @@ dependencies = [
]
[[package]]
+name = "target_build_utils"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "task_info"
version = "0.0.1"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "tempdir"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2163,14 +2176,14 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "2.1.3"
+version = "2.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2189,13 +2202,13 @@ name = "thread-id"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "thread_local"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2203,7 +2216,7 @@ dependencies = [
[[package]]
name = "threadpool"
-version = "1.3.1"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -2211,19 +2224,19 @@ name = "time"
version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "tinyfiledialogs"
version = "0.1.0"
-source = "git+https://github.com/jdm/tinyfiledialogs#54f6aa4f579edbc726b8a764fd759a6d6ed0dd84"
+source = "git+https://github.com/jdm/tinyfiledialogs#41d4268b6852ca5e53a484f0f915a9b63bca1707"
dependencies = [
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2291,7 +2304,7 @@ name = "user32-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2348,8 +2361,8 @@ name = "walkdir"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2358,9 +2371,9 @@ version = "0.5.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
"dlib 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-scanner 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-sys 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2400,7 +2413,7 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempfile 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2411,7 +2424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2422,12 +2435,12 @@ dependencies = [
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "image 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"plugins 0.0.1",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"script_traits 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2454,7 +2467,7 @@ dependencies = [
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2486,7 +2499,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)",
"openssl 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2496,7 +2509,7 @@ dependencies = [
[[package]]
name = "winapi"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -2509,26 +2522,27 @@ name = "ws2_32-sys"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "x11"
-version = "2.6.1"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "x11-dl"
-version = "2.4.0"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "dylib 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock
index 8cde64bfc4c..69baaa7d7d3 100644
--- a/ports/geckolib/Cargo.lock
+++ b/ports/geckolib/Cargo.lock
@@ -8,7 +8,7 @@ dependencies = [
"gecko_bindings 0.0.1",
"gecko_string_cache 0.2.20",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -32,7 +32,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -135,7 +135,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -145,7 +145,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -169,7 +169,7 @@ dependencies = [
"cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gecko_bindings 0.0.1",
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -184,7 +184,7 @@ name = "heapsize"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -199,10 +199,10 @@ dependencies = [
[[package]]
name = "kernel32-sys"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -213,7 +213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "libc"
-version = "0.2.13"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -231,20 +231,28 @@ name = "memchr"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
-name = "num-traits"
+name = "num-integer"
version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "num_cpus"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -252,7 +260,7 @@ name = "ordered-float"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -272,10 +280,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "quickersort"
-version = "2.0.1"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -284,24 +292,24 @@ name = "rand"
version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex"
-version = "0.1.71"
+version = "0.1.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
"utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "regex-syntax"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -318,7 +326,7 @@ dependencies = [
"cssparser 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -358,14 +366,15 @@ dependencies = [
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gecko_bindings 0.0.1",
"gecko_string_cache 0.2.20",
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"ordered-float 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -391,13 +400,13 @@ name = "thread-id"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "thread_local"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -408,9 +417,9 @@ name = "time"
version = "0.1.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -475,13 +484,13 @@ name = "walkdir"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "winapi"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
diff --git a/ports/geckolib/binding_tools/regen.py b/ports/geckolib/binding_tools/regen.py
index d48e76c89d8..72aeef2d5ef 100755
--- a/ports/geckolib/binding_tools/regen.py
+++ b/ports/geckolib/binding_tools/regen.py
@@ -148,7 +148,10 @@ COMPILATION_TARGETS = {
"void_types": [
"nsINode", "nsIDocument", "nsIPrincipal", "nsIURI",
],
- "servo_arc_types": ["ServoComputedValues", "RawServoStyleSheet"]
+ "servo_arc_types": [
+ "ServoComputedValues", "RawServoStyleSheet",
+ "ServoDeclarationBlock"
+ ]
},
"atoms": {
diff --git a/ports/geckolib/data.rs b/ports/geckolib/data.rs
index 235fa8094f0..d87baab86d1 100644
--- a/ports/geckolib/data.rs
+++ b/ports/geckolib/data.rs
@@ -17,9 +17,9 @@ use style::media_queries::{Device, MediaType};
use style::parallel::WorkQueueData;
use style::selector_matching::Stylist;
use style::stylesheets::Stylesheet;
+use style::thread_state;
use style::workqueue::WorkQueue;
use style_traits::ViewportPx;
-use util::thread_state;
pub struct PerDocumentStyleData {
/// Rule processor.
diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs
index 82732911007..35b55f01cf3 100644
--- a/ports/geckolib/gecko_bindings/bindings.rs
+++ b/ports/geckolib/gecko_bindings/bindings.rs
@@ -9,6 +9,8 @@ pub type ServoComputedValuesStrong = ::sugar::refptr::Strong<ServoComputedValues
pub type ServoComputedValuesBorrowed<'a> = ::sugar::refptr::Borrowed<'a, ServoComputedValues>;
pub type RawServoStyleSheetStrong = ::sugar::refptr::Strong<RawServoStyleSheet>;
pub type RawServoStyleSheetBorrowed<'a> = ::sugar::refptr::Borrowed<'a, RawServoStyleSheet>;
+pub type ServoDeclarationBlockStrong = ::sugar::refptr::Strong<ServoDeclarationBlock>;
+pub type ServoDeclarationBlockBorrowed<'a> = ::sugar::refptr::Borrowed<'a, ServoDeclarationBlock>;
use structs::nsStyleFont;
unsafe impl Send for nsStyleFont {}
unsafe impl Sync for nsStyleFont {}
@@ -254,7 +256,7 @@ extern "C" {
classList: *mut *mut *mut nsIAtom)
-> u32;
pub fn Gecko_GetServoDeclarationBlock(element: *mut RawGeckoElement)
- -> *mut ServoDeclarationBlock;
+ -> ServoDeclarationBlockBorrowed;
pub fn Gecko_GetNodeData(node: *mut RawGeckoNode) -> *mut ServoNodeData;
pub fn Gecko_SetNodeData(node: *mut RawGeckoNode,
data: *mut ServoNodeData);
@@ -333,6 +335,8 @@ extern "C" {
pub fn Gecko_DestroyClipPath(clip: *mut StyleClipPath);
pub fn Gecko_NewBasicShape(type_: StyleBasicShapeType)
-> *mut StyleBasicShape;
+ pub fn Gecko_FillAllBackgroundLists(layers: *mut nsStyleImageLayers,
+ maxLen: u32);
pub fn Gecko_AddRefCalcArbitraryThread(aPtr: *mut Calc);
pub fn Gecko_ReleaseCalcArbitraryThread(aPtr: *mut Calc);
pub fn Gecko_Construct_nsStyleFont(ptr: *mut nsStyleFont);
@@ -467,16 +471,18 @@ extern "C" {
pub fn Servo_DropStyleSet(set: *mut RawServoStyleSet);
pub fn Servo_ParseStyleAttribute(bytes: *const u8, length: u32,
cache: *mut nsHTMLCSSStyleSheet)
- -> *mut ServoDeclarationBlock;
- pub fn Servo_DropDeclarationBlock(declarations:
- *mut ServoDeclarationBlock);
+ -> ServoDeclarationBlockStrong;
+ pub fn Servo_DeclarationBlock_AddRef(declarations:
+ ServoDeclarationBlockBorrowed);
+ pub fn Servo_DeclarationBlock_Release(declarations:
+ ServoDeclarationBlockBorrowed);
pub fn Servo_GetDeclarationBlockCache(declarations:
- *mut ServoDeclarationBlock)
+ ServoDeclarationBlockBorrowed)
-> *mut nsHTMLCSSStyleSheet;
pub fn Servo_SetDeclarationBlockImmutable(declarations:
- *mut ServoDeclarationBlock);
+ ServoDeclarationBlockBorrowed);
pub fn Servo_ClearDeclarationBlockCachePointer(declarations:
- *mut ServoDeclarationBlock);
+ ServoDeclarationBlockBorrowed);
pub fn Servo_CSSSupports(name: *const u8, name_length: u32,
value: *const u8, value_length: u32) -> bool;
pub fn Servo_GetComputedValues(node: *mut RawGeckoNode)
diff --git a/ports/geckolib/gecko_bindings/sugar/ns_style_auto_array.rs b/ports/geckolib/gecko_bindings/sugar/ns_style_auto_array.rs
index 43728fd979d..b81aa51df52 100644
--- a/ports/geckolib/gecko_bindings/sugar/ns_style_auto_array.rs
+++ b/ports/geckolib/gecko_bindings/sugar/ns_style_auto_array.rs
@@ -3,13 +3,16 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use std::iter::{once, Chain, Once, IntoIterator};
-use std::slice::IterMut;
+use std::slice::{Iter, IterMut};
use structs::nsStyleAutoArray;
impl<T> nsStyleAutoArray<T> {
pub fn iter_mut(&mut self) -> Chain<Once<&mut T>, IterMut<T>> {
once(&mut self.mFirstElement).chain(self.mOtherElements.iter_mut())
}
+ pub fn iter(&self) -> Chain<Once<&T>, Iter<T>> {
+ once(&self.mFirstElement).chain(self.mOtherElements.iter())
+ }
// Note that often structs containing autoarrays will have
// additional member fields that contain the length, which must be kept
diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs
index 9a8728db6fb..810998ff9fd 100644
--- a/ports/geckolib/glue.rs
+++ b/ports/geckolib/glue.rs
@@ -13,6 +13,7 @@ use gecko_bindings::bindings::{RawGeckoDocument, RawGeckoElement, RawGeckoNode};
use gecko_bindings::bindings::{RawServoStyleSheetBorrowed, ServoComputedValuesBorrowed};
use gecko_bindings::bindings::{RawServoStyleSheetStrong, ServoComputedValuesStrong};
use gecko_bindings::bindings::{ServoDeclarationBlock, ServoNodeData, ThreadSafePrincipalHolder};
+use gecko_bindings::bindings::{ServoDeclarationBlockBorrowed, ServoDeclarationBlockStrong};
use gecko_bindings::bindings::{ThreadSafeURIHolder, nsHTMLCSSStyleSheet};
use gecko_bindings::ptr::{GeckoArcPrincipal, GeckoArcURI};
use gecko_bindings::structs::ServoElementSnapshot;
@@ -25,6 +26,7 @@ use std::mem::transmute;
use std::ptr;
use std::slice;
use std::str::from_utf8_unchecked;
+use std::sync::atomic::{AtomicBool, AtomicPtr, Ordering};
use std::sync::{Arc, Mutex};
use style::arc_ptr_eq;
use style::context::{LocalStyleContextCreationInfo, ReflowGoal, SharedStyleContext};
@@ -355,47 +357,62 @@ pub extern "C" fn Servo_DropStyleSet(data: *mut RawServoStyleSet) -> () {
pub struct GeckoDeclarationBlock {
pub declarations: Option<PropertyDeclarationBlock>,
- pub cache: *mut nsHTMLCSSStyleSheet,
- pub immutable: bool,
+ // XXX The following two fields are made atomic to work around the
+ // ownership system so that they can be changed inside a shared
+ // instance. It wouldn't provide safety as Rust usually promises,
+ // but it is fine as far as we only access them in a single thread.
+ // If we need to access them in different threads, we would need
+ // to redesign how it works with MiscContainer in Gecko side.
+ pub cache: AtomicPtr<nsHTMLCSSStyleSheet>,
+ pub immutable: AtomicBool,
+}
+
+unsafe impl HasArcFFI for GeckoDeclarationBlock {
+ type FFIType = ServoDeclarationBlock;
}
#[no_mangle]
pub extern "C" fn Servo_ParseStyleAttribute(bytes: *const u8, length: u32,
cache: *mut nsHTMLCSSStyleSheet)
- -> *mut ServoDeclarationBlock {
+ -> ServoDeclarationBlockStrong {
let value = unsafe { from_utf8_unchecked(slice::from_raw_parts(bytes, length as usize)) };
- let declarations = Box::new(GeckoDeclarationBlock {
+ GeckoDeclarationBlock::from_arc(Arc::new(GeckoDeclarationBlock {
declarations: GeckoElement::parse_style_attribute(value),
- cache: cache,
- immutable: false,
- });
- Box::into_raw(declarations) as *mut ServoDeclarationBlock
+ cache: AtomicPtr::new(cache),
+ immutable: AtomicBool::new(false),
+ }))
}
#[no_mangle]
-pub extern "C" fn Servo_DropDeclarationBlock(declarations: *mut ServoDeclarationBlock) {
- unsafe {
- let _ = Box::<GeckoDeclarationBlock>::from_raw(declarations as *mut GeckoDeclarationBlock);
- }
+pub extern "C" fn Servo_DeclarationBlock_AddRef(declarations: ServoDeclarationBlockBorrowed) {
+ unsafe { GeckoDeclarationBlock::addref(declarations) };
}
#[no_mangle]
-pub extern "C" fn Servo_GetDeclarationBlockCache(declarations: *mut ServoDeclarationBlock)
+pub extern "C" fn Servo_DeclarationBlock_Release(declarations: ServoDeclarationBlockBorrowed) {
+ unsafe { GeckoDeclarationBlock::release(declarations) };
+}
+
+#[no_mangle]
+pub extern "C" fn Servo_GetDeclarationBlockCache(declarations: ServoDeclarationBlockBorrowed)
-> *mut nsHTMLCSSStyleSheet {
- let declarations = unsafe { (declarations as *const GeckoDeclarationBlock).as_ref().unwrap() };
- declarations.cache
+ GeckoDeclarationBlock::with(declarations, |declarations| {
+ declarations.cache.load(Ordering::Relaxed)
+ })
}
#[no_mangle]
-pub extern "C" fn Servo_SetDeclarationBlockImmutable(declarations: *mut ServoDeclarationBlock) {
- let declarations = unsafe { (declarations as *mut GeckoDeclarationBlock).as_mut().unwrap() };
- declarations.immutable = true;
+pub extern "C" fn Servo_SetDeclarationBlockImmutable(declarations: ServoDeclarationBlockBorrowed) {
+ GeckoDeclarationBlock::with(declarations, |declarations| {
+ declarations.immutable.store(true, Ordering::Relaxed)
+ })
}
#[no_mangle]
-pub extern "C" fn Servo_ClearDeclarationBlockCachePointer(declarations: *mut ServoDeclarationBlock) {
- let declarations = unsafe { (declarations as *mut GeckoDeclarationBlock).as_mut().unwrap() };
- declarations.cache = ptr::null_mut();
+pub extern "C" fn Servo_ClearDeclarationBlockCachePointer(declarations: ServoDeclarationBlockBorrowed) {
+ GeckoDeclarationBlock::with(declarations, |declarations| {
+ declarations.cache.store(ptr::null_mut(), Ordering::Relaxed)
+ });
}
#[no_mangle]
diff --git a/ports/geckolib/wrapper.rs b/ports/geckolib/wrapper.rs
index 6e4f137cfdc..b5b57d27c88 100644
--- a/ports/geckolib/wrapper.rs
+++ b/ports/geckolib/wrapper.rs
@@ -35,6 +35,7 @@ use snapshot::GeckoElementSnapshot;
use snapshot_helpers;
use std::fmt;
use std::marker::PhantomData;
+use std::mem::transmute;
use std::ops::BitOr;
use std::ptr;
use std::sync::Arc;
@@ -432,9 +433,13 @@ impl<'le> TElement for GeckoElement<'le> {
}
fn style_attribute(&self) -> &Option<PropertyDeclarationBlock> {
- unsafe {
- let ptr = Gecko_GetServoDeclarationBlock(self.element) as *mut GeckoDeclarationBlock;
- ptr.as_ref().map(|d| &d.declarations).unwrap_or(&NO_STYLE_ATTRIBUTE)
+ let declarations = unsafe { Gecko_GetServoDeclarationBlock(self.element) };
+ if declarations.is_null() {
+ &NO_STYLE_ATTRIBUTE
+ } else {
+ GeckoDeclarationBlock::with(declarations, |declarations| {
+ unsafe { transmute(&declarations.declarations) }
+ })
}
}
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 4b9f22fc376..821f7553312 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -286,9 +286,9 @@ class CommandBase(object):
def rust_path(self):
version = self.rust_version()
if self._use_stable_rust:
- return "%s/rustc-%s-%s" % (version, version, host_triple())
+ return os.path.join(version, "rustc-%s-%s" % (version, host_triple()))
else:
- return "%s/rustc-nightly-%s" % (version, host_triple())
+ return os.path.join(version, "rustc-nightly-%s" % (host_triple()))
def rust_version(self):
if self._rust_version is None or self._use_stable_rust != self._rust_version_is_stable:
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py
index 39071f3127e..a23c444c9db 100644
--- a/python/tidy/servo_tidy/tidy.py
+++ b/python/tidy/servo_tidy/tidy.py
@@ -29,11 +29,11 @@ config = {
"skip-check-licenses": False,
"ignore": {
"files": [
- CONFIG_FILE_PATH, # ignore config file
- "./.", # ignore hidden files
+ CONFIG_FILE_PATH, # ignore config file
+ "./.", # ignore hidden files
],
"directories": [
- "./.", # ignore hidden directories
+ "./.", # ignore hidden directories
],
"packages": [],
}
@@ -112,6 +112,7 @@ def filter_files(start_dir, only_changed_files, progress):
raise StopIteration
if progress:
file_iter = progress_wrapper(file_iter)
+
for file_name in file_iter:
base_name = os.path.basename(file_name)
if not any(fnmatch.fnmatch(base_name, pattern) for pattern in FILE_PATTERNS_TO_CHECK):
@@ -129,11 +130,7 @@ def uncomment(line):
return line[len(c):].strip()
-def licensed_mpl(header):
- return MPL in header
-
-
-def licensed_apache(header):
+def is_apache_licensed(header):
if APACHE in header:
return any(c in header for c in COPYRIGHT)
@@ -159,9 +156,10 @@ def check_license(file_name, lines):
line = uncomment(l)
if line is not None:
license_block.append(line)
- contents = " ".join(license_block)
- valid_license = licensed_mpl(contents) or licensed_apache(contents)
- acknowledged_bad_license = "xfail-license" in contents
+
+ header = " ".join(license_block)
+ valid_license = MPL in header or is_apache_licensed(header)
+ acknowledged_bad_license = "xfail-license" in header
if not (valid_license or acknowledged_bad_license):
yield (1, "incorrect license")
@@ -180,10 +178,7 @@ def check_length(file_name, idx, line):
raise StopIteration
# Prefer shorter lines when shell scripting.
- if file_name.endswith(".sh"):
- max_length = 80
- else:
- max_length = 120
+ max_length = 80 if file_name.endswith(".sh") else 120
if len(line.rstrip('\n')) > max_length:
yield (idx + 1, "Line is longer than %d characters" % max_length)
@@ -338,7 +333,7 @@ def check_shell(file_name, lines):
did_shebang_check = False
- if len(lines) == 0:
+ if not lines:
yield (0, 'script is an empty file')
return
@@ -357,7 +352,7 @@ def check_shell(file_name, lines):
else:
# The first non-comment, non-whitespace, non-option line is the first "real" line of the script.
# The shebang, options, etc. must come before this.
- if len(required_options) != 0:
+ if required_options:
formatted = ['"{}"'.format(opt) for opt in required_options]
yield (idx + 1, "script is missing options {}".format(", ".join(formatted)))
did_shebang_check = True
@@ -420,9 +415,8 @@ def check_rust(file_name, lines):
line = merged_lines + line
merged_lines = ''
- # Keep track of whitespace to enable checking for a merged import block
-
# Ignore attributes, comments, and imports
+ # Keep track of whitespace to enable checking for a merged import block
if import_block:
if not (is_comment or is_attribute or line.startswith("use ")):
whitespace = line == ""
@@ -550,7 +544,7 @@ def check_rust(file_name, lines):
prev_mod[indent] = ""
if match == -1 and not line.endswith(";"):
yield (idx + 1, "mod declaration spans multiple lines")
- if len(prev_mod[indent]) > 0 and mod < prev_mod[indent]:
+ if prev_mod[indent] and mod < prev_mod[indent]:
yield(idx + 1, decl_message.format("mod declaration")
+ decl_expected.format(prev_mod[indent])
+ decl_found.format(mod))
@@ -679,7 +673,7 @@ def check_config_file(config_file, print_text=True):
lines = conf_file.splitlines(True)
if print_text:
- print '\rChecking for config file...'
+ print '\rChecking the config file...'
current_table = ""
for idx, line in enumerate(lines):
@@ -699,8 +693,7 @@ def check_config_file(config_file, print_text=True):
if "=" not in line:
continue
- key = line.split("=")
- key = key[0].strip()
+ key = line.split("=")[0].strip()
# Check for invalid keys inside [configs] and [ignore] table
if (current_table == "configs" and key not in config or
@@ -722,22 +715,17 @@ def parse_config(content):
config["ignore"]["files"] += exclude.get("files", [])
# Add list of ignored packages to config
config["ignore"]["packages"] = exclude.get("packages", [])
- # Fix the necessary paths if we're in Windows
- if sys.platform == "win32":
- files = []
- for f in config["ignore"]["files"]:
- files += [os.path.join(*f.split("/"))]
- config["ignore"]["files"] = files
- dirs = []
- for f in config["ignore"]["directories"]:
- dirs += [os.path.join(*f.split("/"))]
- config["ignore"]["directories"] = dirs
+ # Fix the paths (OS-dependent)
+ config['ignore']['files'] = map(lambda path: os.path.join(*path.split('/')),
+ config['ignore']['files'])
+ config['ignore']['directories'] = map(lambda path: os.path.join(*path.split('/')),
+ config['ignore']['directories'])
# Override default configs
- configs = config_file.get("configs", [])
- for pref in configs:
+ user_configs = config_file.get("configs", [])
+ for pref in user_configs:
if pref in config:
- config[pref] = configs[pref]
+ config[pref] = user_configs[pref]
def collect_errors_for_files(files_to_check, checking_functions, line_checking_functions, print_text=True):
@@ -836,25 +824,28 @@ def get_file_list(directory, only_changed_files=False, exclude_dirs=[]):
def scan(only_changed_files=False, progress=True):
# check config file for errors
- config_errors = check_config_file(CONFIG_FILE_PATH, progress)
+ config_errors = check_config_file(CONFIG_FILE_PATH)
# standard checks
files_to_check = filter_files('.', only_changed_files, progress)
checking_functions = (check_flake8, check_lock, check_webidl_spec, check_json)
line_checking_functions = (check_license, check_by_line, check_toml, check_shell,
check_rust, check_spec, check_modeline)
- errors = collect_errors_for_files(files_to_check, checking_functions, line_checking_functions)
+ file_errors = collect_errors_for_files(files_to_check, checking_functions, line_checking_functions)
# check dependecy licenses
dep_license_errors = check_dep_license_errors(get_dep_toml_files(only_changed_files), progress)
# wpt lint checks
wpt_lint_errors = check_wpt_lint_errors(get_wpt_files(only_changed_files, progress))
- # collect errors
- errors = itertools.chain(config_errors, errors, dep_license_errors, wpt_lint_errors)
+ # chain all the iterators
+ errors = itertools.chain(config_errors, file_errors, dep_license_errors, wpt_lint_errors)
+
error = None
for error in errors:
colorama.init()
print "\r\033[94m{}\033[0m:\033[93m{}\033[0m: \033[91m{}\033[0m".format(*error)
+
print
if error is None:
colorama.init()
print "\033[92mtidy reported no errors.\033[0m"
+
return int(error is not None)
diff --git a/python/tidy/servo_tidy_tests/test_tidy.py b/python/tidy/servo_tidy_tests/test_tidy.py
index c8751ea59c4..f65ffa55d37 100644
--- a/python/tidy/servo_tidy_tests/test_tidy.py
+++ b/python/tidy/servo_tidy_tests/test_tidy.py
@@ -24,9 +24,9 @@ class CheckTidiness(unittest.TestCase):
errors.next()
def test_tidy_config(self):
- errors = tidy.check_config_file(os.path.join(base_path, 'servo-tidy.toml'))
- self.assertEqual('invalid config key \'key-outside\'', errors.next()[2])
- self.assertEqual('invalid config key \'wrong-key\'', errors.next()[2])
+ errors = tidy.check_config_file(os.path.join(base_path, 'servo-tidy.toml'), print_text=False)
+ self.assertEqual("invalid config key 'key-outside'", errors.next()[2])
+ self.assertEqual("invalid config key 'wrong-key'", errors.next()[2])
self.assertEqual('invalid config table [wrong]', errors.next()[2])
self.assertNoMoreErrors(errors)
diff --git a/tests/unit/style/properties/serialization.rs b/tests/unit/style/properties/serialization.rs
index f47b5303a0f..7187c92b9f8 100644
--- a/tests/unit/style/properties/serialization.rs
+++ b/tests/unit/style/properties/serialization.rs
@@ -47,8 +47,6 @@ fn property_declaration_block_should_serialize_correctly() {
let block = PropertyDeclarationBlock {
declarations: Arc::new(declarations),
- // Incorrect, but not used here:
- normal_count: 0,
important_count: 0,
};
@@ -67,8 +65,6 @@ mod shorthand_serialization {
let block = PropertyDeclarationBlock {
declarations: Arc::new(properties.into_iter().map(|d| (d, Importance::Normal)).collect()),
- // Incorrect, but not used here:
- normal_count: 0,
important_count: 0,
};
@@ -683,18 +679,44 @@ mod shorthand_serialization {
*/
mod background {
- use style::properties::longhands::background_attachment::computed_value::T as Attachment;
- use style::properties::longhands::background_clip::computed_value::T as Clip;
- use style::properties::longhands::background_image::SpecifiedValue as ImageContainer;
- use style::properties::longhands::background_origin::computed_value::T as Origin;
- use style::properties::longhands::background_position::SpecifiedValue as PositionContainer;
- use style::properties::longhands::background_repeat::computed_value::T as Repeat;
- use style::properties::longhands::background_size::SpecifiedExplicitSize;
- use style::properties::longhands::background_size::SpecifiedValue as Size;
+ use style::properties::longhands::background_attachment as attachment;
+ use style::properties::longhands::background_clip as clip;
+ use style::properties::longhands::background_image as image;
+ use style::properties::longhands::background_origin as origin;
+ use style::properties::longhands::background_position as position;
+ use style::properties::longhands::background_repeat as repeat;
+ use style::properties::longhands::background_size as size;
use style::values::specified::Image;
use style::values::specified::position::Position;
use super::*;
-
+ macro_rules! single_vec_value_typedef {
+ ($name:ident, $path:expr) => {
+ DeclaredValue::Value($name::SpecifiedValue(
+ vec![$path]
+ ))
+ };
+ }
+ macro_rules! single_vec_value {
+ ($name:ident, $path:expr) => {
+ DeclaredValue::Value($name::SpecifiedValue(
+ vec![$name::single_value::SpecifiedValue($path)]
+ ))
+ };
+ }
+ macro_rules! single_vec_keyword_value {
+ ($name:ident, $kw:ident) => {
+ DeclaredValue::Value($name::SpecifiedValue(
+ vec![$name::single_value::SpecifiedValue::$kw]
+ ))
+ };
+ }
+ macro_rules! single_vec_variant_value {
+ ($name:ident, $variant:expr) => {
+ DeclaredValue::Value($name::SpecifiedValue(
+ vec![$variant]
+ ))
+ };
+ }
#[test]
fn background_should_serialize_all_available_properties_when_specified() {
let mut properties = Vec::new();
@@ -704,29 +726,31 @@ mod shorthand_serialization {
authored: None
});
- let position = DeclaredValue::Value(PositionContainer(
+ let position = single_vec_value_typedef!(position,
Position {
horizontal: LengthOrPercentage::Length(Length::from_px(7f32)),
vertical: LengthOrPercentage::Length(Length::from_px(4f32))
}
- ));
+ );
- let repeat = DeclaredValue::Value(Repeat::repeat_x);
- let attachment = DeclaredValue::Value(Attachment::scroll);
+ let repeat = single_vec_keyword_value!(repeat, repeat_x);
+ let attachment = single_vec_keyword_value!(attachment, scroll);
- let image = DeclaredValue::Value(ImageContainer(
- Some(Image::Url(Url::parse("http://servo/test.png").unwrap(), UrlExtraData {}))
- ));
+ let image = single_vec_value!(image,
+ Some(Image::Url(Url::parse("http://servo/test.png").unwrap(),
+ UrlExtraData {})));
- let size = DeclaredValue::Value(
- Size::Explicit(SpecifiedExplicitSize {
- width: LengthOrPercentageOrAuto::Length(Length::from_px(70f32)),
- height: LengthOrPercentageOrAuto::Length(Length::from_px(50f32))
- }
- ));
+ let size = single_vec_variant_value!(size,
+ size::single_value::SpecifiedValue::Explicit(
+ size::single_value::SpecifiedExplicitSize {
+ width: LengthOrPercentageOrAuto::Length(Length::from_px(70f32)),
+ height: LengthOrPercentageOrAuto::Length(Length::from_px(50f32))
+ }
+ )
+ );
- let origin = DeclaredValue::Value(Origin::border_box);
- let clip = DeclaredValue::Value(Clip::padding_box);
+ let origin = single_vec_keyword_value!(origin, border_box);
+ let clip = single_vec_keyword_value!(clip, padding_box);
properties.push(PropertyDeclaration::BackgroundColor(color));
properties.push(PropertyDeclaration::BackgroundPosition(position));
@@ -755,29 +779,31 @@ mod shorthand_serialization {
authored: None
});
- let position = DeclaredValue::Value(PositionContainer(
+ let position = single_vec_value_typedef!(position,
Position {
horizontal: LengthOrPercentage::Length(Length::from_px(7f32)),
vertical: LengthOrPercentage::Length(Length::from_px(4f32))
}
- ));
+ );
- let repeat = DeclaredValue::Value(Repeat::repeat_x);
- let attachment = DeclaredValue::Value(Attachment::scroll);
+ let repeat = single_vec_keyword_value!(repeat, repeat_x);
+ let attachment = single_vec_keyword_value!(attachment, scroll);
- let image = DeclaredValue::Value(ImageContainer(
- Some(Image::Url(Url::parse("http://servo/test.png").unwrap(), UrlExtraData {}))
- ));
+ let image = single_vec_value!(image,
+ Some(Image::Url(Url::parse("http://servo/test.png").unwrap(),
+ UrlExtraData {})));
- let size = DeclaredValue::Value(
- Size::Explicit(SpecifiedExplicitSize {
- width: LengthOrPercentageOrAuto::Length(Length::from_px(70f32)),
- height: LengthOrPercentageOrAuto::Length(Length::from_px(50f32))
- })
+ let size = single_vec_variant_value!(size,
+ size::single_value::SpecifiedValue::Explicit(
+ size::single_value::SpecifiedExplicitSize {
+ width: LengthOrPercentageOrAuto::Length(Length::from_px(70f32)),
+ height: LengthOrPercentageOrAuto::Length(Length::from_px(50f32))
+ }
+ )
);
- let origin = DeclaredValue::Value(Origin::padding_box);
- let clip = DeclaredValue::Value(Clip::padding_box);
+ let origin = single_vec_keyword_value!(origin, padding_box);
+ let clip = single_vec_keyword_value!(clip, padding_box);
properties.push(PropertyDeclaration::BackgroundColor(color));
properties.push(PropertyDeclaration::BackgroundPosition(position));
@@ -805,17 +831,17 @@ mod shorthand_serialization {
authored: None
});
- let position = DeclaredValue::Value(PositionContainer(
+ let position = single_vec_value_typedef!(position,
Position {
horizontal: LengthOrPercentage::Length(Length::from_px(0f32)),
vertical: LengthOrPercentage::Length(Length::from_px(0f32))
}
- ));
+ );
- let repeat = DeclaredValue::Value(Repeat::repeat_x);
- let attachment = DeclaredValue::Value(Attachment::scroll);
+ let repeat = single_vec_keyword_value!(repeat, repeat_x);
+ let attachment = single_vec_keyword_value!(attachment, scroll);
- let image = DeclaredValue::Value(ImageContainer(None));
+ let image = single_vec_value!(image, None);
let size = DeclaredValue::Initial;
diff --git a/tests/unit/style/stylesheets.rs b/tests/unit/style/stylesheets.rs
index a73f43b51ba..528dcd67084 100644
--- a/tests/unit/style/stylesheets.rs
+++ b/tests/unit/style/stylesheets.rs
@@ -105,7 +105,6 @@ fn test_parse_stylesheet() {
(PropertyDeclaration::Custom(Atom::from("a"), DeclaredValue::Inherit),
Importance::Important),
]),
- normal_count: 0,
important_count: 2,
},
}),
@@ -152,7 +151,6 @@ fn test_parse_stylesheet() {
longhands::display::SpecifiedValue::block)),
Importance::Normal),
]),
- normal_count: 1,
important_count: 0,
},
}),
@@ -193,22 +191,42 @@ fn test_parse_stylesheet() {
}
)),
Importance::Normal),
- (PropertyDeclaration::BackgroundPosition(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundPosition(DeclaredValue::Value(
+ longhands::background_position::SpecifiedValue(
+ vec![longhands::background_position::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
- (PropertyDeclaration::BackgroundRepeat(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundRepeat(DeclaredValue::Value(
+ longhands::background_repeat::SpecifiedValue(
+ vec![longhands::background_repeat::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
- (PropertyDeclaration::BackgroundAttachment(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundAttachment(DeclaredValue::Value(
+ longhands::background_attachment::SpecifiedValue(
+ vec![longhands::background_attachment::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
- (PropertyDeclaration::BackgroundImage(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundImage(DeclaredValue::Value(
+ longhands::background_image::SpecifiedValue(
+ vec![longhands::background_image::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
- (PropertyDeclaration::BackgroundSize(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundSize(DeclaredValue::Value(
+ longhands::background_size::SpecifiedValue(
+ vec![longhands::background_size::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
- (PropertyDeclaration::BackgroundOrigin(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundOrigin(DeclaredValue::Value(
+ longhands::background_origin::SpecifiedValue(
+ vec![longhands::background_origin::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
- (PropertyDeclaration::BackgroundClip(DeclaredValue::Initial),
+ (PropertyDeclaration::BackgroundClip(DeclaredValue::Value(
+ longhands::background_clip::SpecifiedValue(
+ vec![longhands::background_clip::single_value
+ ::get_initial_specified_value()]))),
Importance::Normal),
]),
- normal_count: 8,
important_count: 0,
},
}),
diff --git a/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-001.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-001.htm.ini
deleted file mode 100644
index 92b2edb5116..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-001.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[border-padding-bleed-001.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-002.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-002.htm.ini
deleted file mode 100644
index eafdcac72f7..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-002.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[border-padding-bleed-002.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-003.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-003.htm.ini
deleted file mode 100644
index 3a35dffe436..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/border-padding-bleed-003.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[border-padding-bleed-003.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/border-width-applies-to-008.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/border-width-applies-to-008.htm.ini
deleted file mode 100644
index d6a60adec45..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/border-width-applies-to-008.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[border-width-applies-to-008.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-000.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-000.htm.ini
deleted file mode 100644
index 51e0ddd4055..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-000.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[c5506-ipadn-t-000.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-002.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-002.htm.ini
deleted file mode 100644
index 2942e9f5c43..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/c5506-ipadn-t-002.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[c5506-ipadn-t-002.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/c5508-ipadn-b-000.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/c5508-ipadn-b-000.htm.ini
deleted file mode 100644
index 661978ebe57..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/c5508-ipadn-b-000.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[c5508-ipadn-b-000.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/c5510-ipadn-000.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/c5510-ipadn-000.htm.ini
index 8973408f599..5eabcb65ce2 100644
--- a/tests/wpt/metadata-css/css21_dev/html4/c5510-ipadn-000.htm.ini
+++ b/tests/wpt/metadata-css/css21_dev/html4/c5510-ipadn-000.htm.ini
@@ -1,3 +1,4 @@
[c5510-ipadn-000.htm]
type: reftest
- expected: FAIL
+ expected:
+ if os != "mac": FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-022.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-022.htm.ini
deleted file mode 100644
index 78d873ffa94..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-022.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[inline-formatting-context-022.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-023.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-023.htm.ini
deleted file mode 100644
index 8f3fd2946a6..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/inline-formatting-context-023.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[inline-formatting-context-023.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-002.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-002.htm.ini
deleted file mode 100644
index b31af8d4e11..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-002.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[inline-non-replaced-height-002.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-003.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-003.htm.ini
deleted file mode 100644
index 346df502fca..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/inline-non-replaced-height-003.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[inline-non-replaced-height-003.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/margin-bottom-applies-to-008.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/margin-bottom-applies-to-008.htm.ini
deleted file mode 100644
index fb3d1d08ba9..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/margin-bottom-applies-to-008.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[margin-bottom-applies-to-008.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/margin-top-applies-to-008.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/margin-top-applies-to-008.htm.ini
deleted file mode 100644
index aa17dcc51c0..00000000000
--- a/tests/wpt/metadata-css/css21_dev/html4/margin-top-applies-to-008.htm.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[margin-top-applies-to-008.htm]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata-css/cssom-1_dev/html/cssom-setProperty-shorthand.htm.ini b/tests/wpt/metadata-css/cssom-1_dev/html/cssom-setProperty-shorthand.htm.ini
deleted file mode 100644
index 0107a131efa..00000000000
--- a/tests/wpt/metadata-css/cssom-1_dev/html/cssom-setProperty-shorthand.htm.ini
+++ /dev/null
@@ -1,35 +0,0 @@
-[cssom-setProperty-shorthand.htm]
- type: testharness
- [shorthand font can be set with setProperty]
- expected: FAIL
-
- [shorthand border-top can be set with setProperty]
- expected: FAIL
-
- [shorthand border-right can be set with setProperty]
- expected: FAIL
-
- [shorthand border-bottom can be set with setProperty]
- expected: FAIL
-
- [shorthand border-left can be set with setProperty]
- expected: FAIL
-
- [shorthand border can be set with setProperty]
- expected: FAIL
-
- [shorthand list-style can be set with setProperty]
- expected: FAIL
-
- [shorthand outline can be set with setProperty]
- expected: FAIL
-
- [shorthand background can be set with setProperty]
- expected: FAIL
-
- [shorthand overflow can be set with setProperty]
- expected: FAIL
-
- [shorthand border-radius can be set with setProperty]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 5606390b636..b5a1aadce9e 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -19306,6 +19306,10 @@
"url": "/html/semantics/embedded-content/the-img-element/invalid-src.html"
},
{
+ "path": "html/semantics/embedded-content/the-img-element/nonexistent-image.html",
+ "url": "/html/semantics/embedded-content/the-img-element/nonexistent-image.html"
+ },
+ {
"path": "html/semantics/embedded-content/the-img-element/relevant-mutations.html",
"url": "/html/semantics/embedded-content/the-img-element/relevant-mutations.html"
},
diff --git a/tests/wpt/metadata/fetch/api/request/request-headers.html.ini b/tests/wpt/metadata/fetch/api/request/request-headers.html.ini
index b63c0f7c6d3..199c41344cf 100644
--- a/tests/wpt/metadata/fetch/api/request/request-headers.html.ini
+++ b/tests/wpt/metadata/fetch/api/request/request-headers.html.ini
@@ -1,23 +1,5 @@
[request-headers.html]
type: testharness
- [Adding valid no-cors request header "content-type: application/x-www-form-urlencoded"]
- expected: FAIL
-
- [Adding valid no-cors request header "content-type: application/x-www-form-urlencoded;charset=UTF-8"]
- expected: FAIL
-
- [Adding valid no-cors request header "content-type: multipart/form-data"]
- expected: FAIL
-
- [Adding valid no-cors request header "content-type: multipart/form-data;charset=UTF-8"]
- expected: FAIL
-
- [Adding valid no-cors request header "content-TYPE: text/plain"]
- expected: FAIL
-
- [Adding valid no-cors request header "CONTENT-type: text/plain;charset=UTF-8"]
- expected: FAIL
-
[Request should get its content-type from the body if none is provided]
expected: FAIL
diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-svg-image.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-svg-image.html.ini
index a609b60a64b..c91eba5318b 100644
--- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-svg-image.html.ini
+++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/textures/tex-image-and-sub-image-2d-with-svg-image.html.ini
@@ -1,5 +1,6 @@
[tex-image-and-sub-image-2d-with-svg-image.html]
type: testharness
+ expected: TIMEOUT
[WebGL test #0: at (4, 4) expected: 0,255,0 was 0,0,0]
expected: FAIL
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index 84e624262c3..0546548d847 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -2616,6 +2616,18 @@
"url": "/_mozilla/css/inline_element_border_a.html"
}
],
+ "css/inline_element_padding_margin.html": [
+ {
+ "path": "css/inline_element_padding_margin.html",
+ "references": [
+ [
+ "/_mozilla/css/inline_element_padding_margin_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/inline_element_padding_margin.html"
+ }
+ ],
"css/inline_font_size_zero_a.html": [
{
"path": "css/inline_font_size_zero_a.html",
@@ -3552,6 +3564,30 @@
"url": "/_mozilla/css/mix_blend_mode_a.html"
}
],
+ "css/multiple_backgrounds.html": [
+ {
+ "path": "css/multiple_backgrounds.html",
+ "references": [
+ [
+ "/_mozilla/css/multiple_backgrounds_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/multiple_backgrounds.html"
+ }
+ ],
+ "css/multiple_backgrounds_ref.html": [
+ {
+ "path": "css/multiple_backgrounds_ref.html",
+ "references": [
+ [
+ "/_mozilla/css/multiple_backgrounds_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/multiple_backgrounds_ref.html"
+ }
+ ],
"css/multiple_css_class_a.html": [
{
"path": "css/multiple_css_class_a.html",
@@ -11872,6 +11908,18 @@
"url": "/_mozilla/css/inline_element_border_a.html"
}
],
+ "css/inline_element_padding_margin.html": [
+ {
+ "path": "css/inline_element_padding_margin.html",
+ "references": [
+ [
+ "/_mozilla/css/inline_element_padding_margin_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/inline_element_padding_margin.html"
+ }
+ ],
"css/inline_font_size_zero_a.html": [
{
"path": "css/inline_font_size_zero_a.html",
@@ -12808,6 +12856,30 @@
"url": "/_mozilla/css/mix_blend_mode_a.html"
}
],
+ "css/multiple_backgrounds.html": [
+ {
+ "path": "css/multiple_backgrounds.html",
+ "references": [
+ [
+ "/_mozilla/css/multiple_backgrounds_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/multiple_backgrounds.html"
+ }
+ ],
+ "css/multiple_backgrounds_ref.html": [
+ {
+ "path": "css/multiple_backgrounds_ref.html",
+ "references": [
+ [
+ "/_mozilla/css/multiple_backgrounds_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/multiple_backgrounds_ref.html"
+ }
+ ],
"css/multiple_css_class_a.html": [
{
"path": "css/multiple_css_class_a.html",
diff --git a/tests/wpt/mozilla/tests/css/bubbles.png b/tests/wpt/mozilla/tests/css/bubbles.png
new file mode 100644
index 00000000000..dbd4db86005
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/bubbles.png
Binary files differ
diff --git a/tests/wpt/mozilla/tests/css/inline_element_padding_margin.html b/tests/wpt/mozilla/tests/css/inline_element_padding_margin.html
new file mode 100644
index 00000000000..014a76299b2
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/inline_element_padding_margin.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Border, padding and margin properties' top and bottom values of inline elements shouldn't affect element's height</title>
+ <link rel="match" href="inline_element_padding_margin_ref.html">
+ <style>
+ a {
+ border-top: 20px solid transparent;
+ border-bottom: 20px solid transparent;
+ padding: 20px 0;
+ margin: 20px 0;
+ }
+ </style>
+</head>
+<body>
+ <a href="#">foo</a>
+ <br>
+ bar
+</body>
+</html>
diff --git a/tests/wpt/mozilla/tests/css/inline_element_padding_margin_ref.html b/tests/wpt/mozilla/tests/css/inline_element_padding_margin_ref.html
new file mode 100644
index 00000000000..1b37ddc8575
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/inline_element_padding_margin_ref.html
@@ -0,0 +1,12 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Border, padding and margin properties' top and bottom values of inline elements shouldn't affect element's height</title>
+</head>
+<body>
+ <a href="#">foo</a>
+ <br>
+ bar
+</body>
+</html>
diff --git a/tests/wpt/mozilla/tests/css/multiple_backgrounds.html b/tests/wpt/mozilla/tests/css/multiple_backgrounds.html
new file mode 100644
index 00000000000..29922d60454
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/multiple_backgrounds.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <link rel="match" href="multiple_backgrounds_ref.html">
+ <style type="text/css">
+ /* Example from
+ https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Background_and_Borders/Using_CSS_multiple_backgrounds
+ (Public domain)
+
+ bubbles.png is from the above MDN page, by Mozilla contributors,
+ licensed under CC-BY-SA 2.5
+
+ Rust logo from https://www.rust-lang.org/logos/rust-logo-256x256.png,
+ licensed as CC-BY-SA 4.0, owned by Mozilla
+ */
+ #multibg {
+ width: 700px;
+ height: 400px;
+ background: url(rust-logo-256x256.png) no-repeat bottom right / 256px 256px,
+ url(bubbles.png) no-repeat left / 700px 100%,
+ linear-gradient(to right, rgba(30, 75, 115, 1), rgba(255, 255, 255, 0)) no-repeat;
+ }
+ </style>
+</head>
+<body>
+ <div id="multibg">
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html b/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html
new file mode 100644
index 00000000000..d3af6fe5881
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <link rel="match" href="multiple_backgrounds_ref.html">
+ <style type="text/css">
+ /* Example from
+ https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Background_and_Borders/Using_CSS_multiple_backgrounds
+ (Public domain)
+
+ bubbles.png is from the above MDN page, by Mozilla contributors,
+ licensed under CC-BY-SA 2.5
+
+ Rust logo from https://www.rust-lang.org/logos/rust-logo-256x256.png,
+ licensed as CC-BY-SA 4.0, owned by Mozilla
+ */
+ #gradientbg {
+ width: 700px;
+ height: 400px;
+ background: linear-gradient(to right, rgba(30, 75, 115, 1), rgba(255, 255, 255, 0)) no-repeat;
+ }
+ #bubblesbg {
+ width: 100%;
+ height: 100%;
+ background: url(bubbles.png) no-repeat left / 700px 100%;
+ position: relative;
+ }
+ #rustbg {
+ width: 256px;
+ height: 256px;
+ background: url(rust-logo-256x256.png) no-repeat left / 256px 256px;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ }
+ </style>
+</head>
+<body>
+ <div id="gradientbg">
+ <div id="bubblesbg">
+ <div id="rustbg">
+ </div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/mozilla/tests/css/rust-logo-256x256.png b/tests/wpt/mozilla/tests/css/rust-logo-256x256.png
new file mode 100644
index 00000000000..63506dd85ef
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/rust-logo-256x256.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/nonexistent-image.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/nonexistent-image.html
new file mode 100644
index 00000000000..f58569ede0f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/nonexistent-image.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML>
+<meta charset="utf-8">
+<title>Loading an nonexisting image should fail; triggering appropriate events</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<img>
+
+<script>
+ async_test(function(t) {
+ var img = document.querySelector("img");
+ img.onload = this.step_func_done(function() {
+ assert_unreached("image.onload() was not supposed to be called");
+ });
+ img.onerror = this.step_func_done(function(e) {
+ assert_equals(e.type, "error", "image.onerror() called");
+ t.done();
+ });
+ img.src = "404";
+ });
+</script>