aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/compositing/constellation.rs3
-rw-r--r--components/compositing/pipeline.rs2
-rw-r--r--components/layout/Cargo.toml3
-rw-r--r--components/layout/layout_task.rs18
-rw-r--r--components/layout/lib.rs1
-rw-r--r--components/layout_traits/Cargo.toml6
-rw-r--r--components/layout_traits/lib.rs17
-rw-r--r--components/msg/compositor_msg.rs2
-rw-r--r--components/msg/constellation_msg.rs2
-rw-r--r--components/script/Cargo.toml3
-rw-r--r--components/script/layout_interface.rs3
-rw-r--r--components/script/lib.rs1
-rw-r--r--components/servo/Cargo.lock53
-rw-r--r--components/util/Cargo.toml3
-rw-r--r--components/util/geometry.rs2
-rw-r--r--components/util/lib.rs4
-rw-r--r--ports/cef/Cargo.lock116
-rw-r--r--ports/gonk/Cargo.lock114
18 files changed, 277 insertions, 76 deletions
diff --git a/components/compositing/constellation.rs b/components/compositing/constellation.rs
index 2bbe8e3ef05..6cd40b7863f 100644
--- a/components/compositing/constellation.rs
+++ b/components/compositing/constellation.rs
@@ -19,6 +19,7 @@ use euclid::rect::{Rect, TypedRect};
use euclid::size::Size2D;
use euclid::scale_factor::ScaleFactor;
use gfx::font_cache_task::FontCacheTask;
+use ipc_channel::ipc;
use layout_traits::{LayoutControlChan, LayoutControlMsg, LayoutTaskFactory};
use libc;
use msg::compositor_msg::{Epoch, LayerId};
@@ -1128,7 +1129,7 @@ impl<LTF: LayoutTaskFactory, STF: ScriptTaskFactory> Constellation<LTF, STF> {
// epoch matches what the compositor has drawn. If they match
// (and script is idle) then this pipeline won't change again
// and can be considered stable.
- let (sender, receiver) = channel();
+ let (sender, receiver) = ipc::channel().unwrap();
let LayoutControlChan(ref layout_chan) = pipeline.layout_chan;
layout_chan.send(LayoutControlMsg::GetCurrentEpoch(sender)).unwrap();
let layout_task_epoch = receiver.recv().unwrap();
diff --git a/components/compositing/pipeline.rs b/components/compositing/pipeline.rs
index 6bbbccbe731..ac7e9e560b2 100644
--- a/components/compositing/pipeline.rs
+++ b/components/compositing/pipeline.rs
@@ -85,7 +85,7 @@ impl Pipeline {
let (paint_port, paint_chan) = PaintChan::new();
let (paint_shutdown_chan, paint_shutdown_port) = channel();
let (layout_shutdown_chan, layout_shutdown_port) = channel();
- let (pipeline_chan, pipeline_port) = channel();
+ let (pipeline_chan, pipeline_port) = ipc::channel().unwrap();
let failure = Failure {
pipeline_id: id,
diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml
index 44f86405762..dfb2e12cb93 100644
--- a/components/layout/Cargo.toml
+++ b/components/layout/Cargo.toml
@@ -55,6 +55,9 @@ git = "https://github.com/servo/rust-selectors"
[dependencies.clock_ticks]
git = "https://github.com/tomaka/clock_ticks"
+[dependencies.ipc-channel]
+git = "https://github.com/pcwalton/ipc-channel"
+
[dependencies]
log = "*"
encoding = "0.2"
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs
index 3a51d858c77..82cfc06974c 100644
--- a/components/layout/layout_task.rs
+++ b/components/layout/layout_task.rs
@@ -39,6 +39,7 @@ use gfx::display_list::StackingContext;
use gfx::font_cache_task::FontCacheTask;
use gfx::paint_task::Msg as PaintMsg;
use gfx::paint_task::{PaintChan, PaintLayer};
+use ipc_channel::ipc::IpcReceiver;
use layout_traits::{LayoutControlMsg, LayoutTaskFactory};
use log;
use msg::compositor_msg::{Epoch, ScrollPolicy, LayerId};
@@ -65,6 +66,7 @@ use std::mem::transmute;
use std::ops::{Deref, DerefMut};
use std::sync::mpsc::{channel, Sender, Receiver, Select};
use std::sync::{Arc, Mutex, MutexGuard};
+use std::thread;
use style::computed_values::{filter, mix_blend_mode};
use style::media_queries::{MediaType, MediaQueryList, Device};
use style::selector_matching::Stylist;
@@ -155,7 +157,7 @@ pub struct LayoutTask {
/// The port on which we receive messages from the script task.
pub port: Receiver<Msg>,
- /// The port on which we receive messages from the constellation
+ /// The port on which we receive messages from the constellation.
pub pipeline_port: Receiver<LayoutControlMsg>,
/// The port on which we receive messages from the image cache
@@ -213,7 +215,7 @@ impl LayoutTaskFactory for LayoutTask {
url: Url,
is_iframe: bool,
chan: OpaqueScriptLayoutChannel,
- pipeline_port: Receiver<LayoutControlMsg>,
+ pipeline_port: IpcReceiver<LayoutControlMsg>,
constellation_chan: ConstellationChan,
failure_msg: Failure,
script_chan: ScriptControlChan,
@@ -284,7 +286,7 @@ impl LayoutTask {
is_iframe: bool,
port: Receiver<Msg>,
chan: LayoutChan,
- pipeline_port: Receiver<LayoutControlMsg>,
+ pipeline_port: IpcReceiver<LayoutControlMsg>,
constellation_chan: ConstellationChan,
script_chan: ScriptControlChan,
paint_chan: PaintChan,
@@ -314,12 +316,20 @@ impl LayoutTask {
let (image_cache_sender, image_cache_receiver) = channel();
let (canvas_layers_sender, canvas_layers_receiver) = channel();
+ // Start a thread to proxy IPC messages from the layout thread to us.
+ let (pipeline_sender, pipeline_receiver) = channel();
+ thread::spawn(move || {
+ while let Ok(message) = pipeline_port.recv() {
+ pipeline_sender.send(message).unwrap()
+ }
+ });
+
LayoutTask {
id: id,
url: url,
is_iframe: is_iframe,
port: port,
- pipeline_port: pipeline_port,
+ pipeline_port: pipeline_receiver,
chan: chan,
script_chan: script_chan,
constellation_chan: constellation_chan.clone(),
diff --git a/components/layout/lib.rs b/components/layout/lib.rs
index 8519758ccc9..618a16e9628 100644
--- a/components/layout/lib.rs
+++ b/components/layout/lib.rs
@@ -46,6 +46,7 @@ extern crate fnv;
extern crate euclid;
extern crate gfx;
extern crate gfx_traits;
+extern crate ipc_channel;
extern crate layout_traits;
extern crate libc;
extern crate msg;
diff --git a/components/layout_traits/Cargo.toml b/components/layout_traits/Cargo.toml
index 888f729bea2..94f3b9d0498 100644
--- a/components/layout_traits/Cargo.toml
+++ b/components/layout_traits/Cargo.toml
@@ -25,6 +25,12 @@ path = "../profile_traits"
[dependencies.util]
path = "../util"
+[dependencies.ipc-channel]
+git = "https://github.com/pcwalton/ipc-channel"
+
[dependencies]
url = "0.2.35"
euclid = "0.1"
+serde = "*"
+serde_macros = "*"
+
diff --git a/components/layout_traits/lib.rs b/components/layout_traits/lib.rs
index 7db5475c969..64237be3bad 100644
--- a/components/layout_traits/lib.rs
+++ b/components/layout_traits/lib.rs
@@ -2,12 +2,17 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#![feature(custom_derive, plugin)]
+#![plugin(serde_macros)]
+
extern crate euclid;
extern crate gfx;
+extern crate ipc_channel;
extern crate script_traits;
extern crate msg;
extern crate profile_traits;
extern crate net_traits;
+extern crate serde;
extern crate url;
extern crate util;
@@ -19,27 +24,29 @@ extern crate util;
use euclid::rect::Rect;
use gfx::font_cache_task::FontCacheTask;
use gfx::paint_task::PaintChan;
+use ipc_channel::ipc::{IpcReceiver, IpcSender};
use msg::compositor_msg::{Epoch, LayerId};
use msg::constellation_msg::{ConstellationChan, Failure, PipelineId, PipelineExitType};
use profile_traits::mem;
use profile_traits::time;
use net_traits::image_cache_task::ImageCacheTask;
use script_traits::{ScriptControlChan, OpaqueScriptLayoutChannel};
-use std::sync::mpsc::{Sender, Receiver};
+use std::sync::mpsc::Sender;
use util::geometry::Au;
use url::Url;
/// Messages sent to the layout task from the constellation and/or compositor.
+#[derive(Deserialize, Serialize)]
pub enum LayoutControlMsg {
ExitNow(PipelineExitType),
- GetCurrentEpoch(Sender<Epoch>),
+ GetCurrentEpoch(IpcSender<Epoch>),
TickAnimations,
SetVisibleRects(Vec<(LayerId, Rect<Au>)>),
}
/// A channel wrapper for constellation messages
-#[derive(Clone)]
-pub struct LayoutControlChan(pub Sender<LayoutControlMsg>);
+#[derive(Clone, Deserialize, Serialize)]
+pub struct LayoutControlChan(pub IpcSender<LayoutControlMsg>);
// A static method creating a layout task
// Here to remove the compositor -> layout dependency
@@ -50,7 +57,7 @@ pub trait LayoutTaskFactory {
url: Url,
is_iframe: bool,
chan: OpaqueScriptLayoutChannel,
- pipeline_port: Receiver<LayoutControlMsg>,
+ pipeline_port: IpcReceiver<LayoutControlMsg>,
constellation_chan: ConstellationChan,
failure_msg: Failure,
script_chan: ScriptControlChan,
diff --git a/components/msg/compositor_msg.rs b/components/msg/compositor_msg.rs
index be86e7d4994..df05548b6a5 100644
--- a/components/msg/compositor_msg.rs
+++ b/components/msg/compositor_msg.rs
@@ -16,7 +16,7 @@ use std::fmt;
use constellation_msg::PipelineId;
/// A newtype struct for denoting the age of messages; prevents race conditions.
-#[derive(PartialEq, Eq, Debug, Copy, Clone, PartialOrd, Ord)]
+#[derive(PartialEq, Eq, Debug, Copy, Clone, PartialOrd, Ord, Deserialize, Serialize)]
pub struct Epoch(pub u32);
impl Epoch {
diff --git a/components/msg/constellation_msg.rs b/components/msg/constellation_msg.rs
index 68a13cddc1c..662e1bed34a 100644
--- a/components/msg/constellation_msg.rs
+++ b/components/msg/constellation_msg.rs
@@ -377,7 +377,7 @@ pub struct SubpageId(pub u32);
// The type of pipeline exit. During complete shutdowns, pipelines do not have to
// release resources automatically released on process termination.
-#[derive(Copy, Clone, Debug)]
+#[derive(Copy, Clone, Debug, Deserialize, Serialize)]
pub enum PipelineExitType {
PipelineOnly,
Complete,
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index 8fc3d56fa9b..6aefc2903d7 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -55,6 +55,9 @@ features = ["query_encoding"]
[dependencies.offscreen_gl_context]
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
+[dependencies.ipc-channel]
+git = "https://github.com/pcwalton/ipc-channel"
+
[dependencies]
log = "*"
encoding = "0.2"
diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs
index b88f60c6b4e..7db08689279 100644
--- a/components/script/layout_interface.rs
+++ b/components/script/layout_interface.rs
@@ -10,6 +10,7 @@ use dom::node::LayoutData;
use euclid::point::Point2D;
use euclid::rect::Rect;
+use ipc_channel::ipc::IpcSender;
use libc::uintptr_t;
use msg::compositor_msg::LayerId;
use msg::constellation_msg::{PipelineExitType, WindowSizeData};
@@ -71,7 +72,7 @@ pub enum Msg {
ExitNow(PipelineExitType),
/// Get the last epoch counter for this layout task.
- GetCurrentEpoch(Sender<Epoch>)
+ GetCurrentEpoch(IpcSender<Epoch>)
}
/// Synchronous messages that script can send to layout.
diff --git a/components/script/lib.rs b/components/script/lib.rs
index 15a1c4c5db5..66d184846f3 100644
--- a/components/script/lib.rs
+++ b/components/script/lib.rs
@@ -44,6 +44,7 @@ extern crate html5ever;
extern crate encoding;
extern crate fnv;
extern crate hyper;
+extern crate ipc_channel;
extern crate js;
extern crate libc;
extern crate msg;
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index 3ca04f3bfa8..f69593bc603 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -61,7 +61,7 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -91,7 +91,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"canvas_traits 0.0.1",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
@@ -107,7 +107,7 @@ version = "0.0.1"
dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
@@ -158,7 +158,7 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -335,13 +335,15 @@ dependencies = [
[[package]]
name = "euclid"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -425,7 +427,7 @@ dependencies = [
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fontconfig 0.1.0 (git+https://github.com/servo/rust-fontconfig)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
@@ -524,7 +526,7 @@ dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
@@ -613,7 +615,7 @@ source = "git+https://github.com/servo/io-surface-rs#f772aa79f487d1722ec6ad3d3c3
dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -621,7 +623,7 @@ dependencies = [
[[package]]
name = "ipc-channel"
version = "0.1.0"
-source = "git+https://github.com/pcwalton/ipc-channel#aa2eab807ba1e7e287d283c2788c317c53d26970"
+source = "git+https://github.com/pcwalton/ipc-channel#1043d943a4da75ba302cfbe0b55afe1c84887560"
dependencies = [
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -663,7 +665,7 @@ dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.0.1 (git+https://github.com/servo/rust-glx)",
"io-surface 0.1.0 (git+https://github.com/servo/io-surface-rs)",
@@ -685,10 +687,11 @@ dependencies = [
"clock_ticks 0.0.6 (git+https://github.com/tomaka/clock_ticks)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layout_traits 0.0.1",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -712,12 +715,15 @@ dependencies = [
name = "layout_traits"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"msg 0.0.1",
"net_traits 0.0.1",
"profile_traits 0.0.1",
"script_traits 0.0.1",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
]
@@ -803,7 +809,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.1.0 (git+https://github.com/servo/io-surface-rs)",
"ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
@@ -823,7 +829,7 @@ version = "0.0.1"
dependencies = [
"cookie 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -855,7 +861,7 @@ dependencies = [
name = "net_traits"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -898,7 +904,7 @@ source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#46c5cc
dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1099,10 +1105,11 @@ dependencies = [
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"js 0.1.0 (git+https://github.com/servo/rust-mozjs)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1142,7 +1149,7 @@ name = "script_traits"
version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1257,7 +1264,7 @@ dependencies = [
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1278,7 +1285,7 @@ name = "style_tests"
version = "0.0.1"
dependencies = [
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.1.0 (git+https://github.com/servo/rust-selectors)",
"string_cache 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache_plugin 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1367,7 +1374,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1375,6 +1382,8 @@ dependencies = [
"plugins 0.0.1",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1383,7 +1392,7 @@ dependencies = [
name = "util_tests"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"util 0.0.1",
diff --git a/components/util/Cargo.toml b/components/util/Cargo.toml
index b6a98db4c95..8ed33f5bd79 100644
--- a/components/util/Cargo.toml
+++ b/components/util/Cargo.toml
@@ -33,3 +33,6 @@ cssparser = "0.3.1"
num = "0.1.24"
url = "*"
euclid = "0.1"
+serde = "*"
+serde_macros = "*"
+
diff --git a/components/util/geometry.rs b/components/util/geometry.rs
index 5f493f19660..1ed0565e3b4 100644
--- a/components/util/geometry.rs
+++ b/components/util/geometry.rs
@@ -66,7 +66,7 @@ pub enum PagePx {}
// See https://bugzilla.mozilla.org/show_bug.cgi?id=177805 for more info.
//
// FIXME: Implement Au using Length and ScaleFactor instead of a custom type.
-#[derive(Clone, Copy, Hash, PartialEq, PartialOrd, Eq, Ord)]
+#[derive(Clone, Copy, Hash, PartialEq, PartialOrd, Eq, Ord, Deserialize, Serialize)]
pub struct Au(pub i32);
impl Default for Au {
diff --git a/components/util/lib.rs b/components/util/lib.rs
index cac18875ac3..ea3caba8a3d 100644
--- a/components/util/lib.rs
+++ b/components/util/lib.rs
@@ -5,6 +5,7 @@
#![feature(alloc)]
#![feature(box_syntax)]
#![feature(core_intrinsics)]
+#![feature(custom_derive)]
#![feature(fnbox)]
#![feature(hashmap_hasher)]
#![feature(heap_api)]
@@ -18,6 +19,8 @@
#![feature(step_trait)]
#![feature(zero_one)]
+#![plugin(serde_macros)]
+
#[macro_use] extern crate log;
extern crate azure;
@@ -31,6 +34,7 @@ extern crate num as num_lib;
extern crate num_cpus;
extern crate rand;
extern crate rustc_serialize;
+extern crate serde;
extern crate smallvec;
extern crate url;
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index 097e24b04ac..c488fa1c86a 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -10,7 +10,7 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"devtools 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1",
@@ -47,6 +47,11 @@ version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
+name = "aster"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
name = "azure"
version = "0.1.0"
source = "git+https://github.com/servo/rust-azure#d8c86d7864bdf782734981f17ca7561c97bdaf98"
@@ -55,7 +60,7 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -85,7 +90,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"canvas_traits 0.0.1",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
@@ -101,7 +106,7 @@ version = "0.0.1"
dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
@@ -152,10 +157,11 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -328,13 +334,15 @@ dependencies = [
[[package]]
name = "euclid"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -418,7 +426,7 @@ dependencies = [
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fontconfig 0.1.0 (git+https://github.com/servo/rust-fontconfig)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
@@ -510,7 +518,7 @@ dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin 0.0.26 (git+https://github.com/servo/glutin?branch=servo)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
@@ -599,12 +607,23 @@ source = "git+https://github.com/servo/io-surface-rs#f772aa79f487d1722ec6ad3d3c3
dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
+name = "ipc-channel"
+version = "0.1.0"
+source = "git+https://github.com/pcwalton/ipc-channel#1043d943a4da75ba302cfbe0b55afe1c84887560"
+dependencies = [
+ "libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "js"
version = "0.1.0"
source = "git+https://github.com/servo/rust-mozjs#f59c04795c84b82e00fdbd694bed90c56fa6567a"
@@ -638,7 +657,7 @@ dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.0.1 (git+https://github.com/servo/rust-glx)",
"io-surface 0.1.0 (git+https://github.com/servo/io-surface-rs)",
@@ -660,10 +679,11 @@ dependencies = [
"clock_ticks 0.0.6 (git+https://github.com/tomaka/clock_ticks)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layout_traits 0.0.1",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -687,12 +707,15 @@ dependencies = [
name = "layout_traits"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"msg 0.0.1",
"net_traits 0.0.1",
"profile_traits 0.0.1",
"script_traits 0.0.1",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
]
@@ -778,12 +801,15 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.1.0 (git+https://github.com/servo/io-surface-rs)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"png 0.1.0 (git+https://github.com/servo/rust-png)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
@@ -795,7 +821,7 @@ version = "0.0.1"
dependencies = [
"cookie 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -815,7 +841,7 @@ dependencies = [
name = "net_traits"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -858,7 +884,7 @@ source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#46c5cc
dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -988,6 +1014,27 @@ dependencies = [
]
[[package]]
+name = "quasi"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "quasi_codegen"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "aster 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "quasi_macros"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "quasi_codegen 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "quicksort"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1038,10 +1085,11 @@ dependencies = [
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"js 0.1.0 (git+https://github.com/servo/rust-mozjs)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1073,7 +1121,7 @@ name = "script_traits"
version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1097,6 +1145,32 @@ dependencies = [
]
[[package]]
+name = "serde"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "serde_codegen"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "aster 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quasi 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quasi_macros 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "serde_macros"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "serde_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "servo"
version = "0.0.1"
dependencies = [
@@ -1188,7 +1262,7 @@ dependencies = [
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1284,7 +1358,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1292,6 +1366,8 @@ dependencies = [
"plugins 0.0.1",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock
index 203fe5bb1e4..6d7216535fa 100644
--- a/ports/gonk/Cargo.lock
+++ b/ports/gonk/Cargo.lock
@@ -7,7 +7,7 @@ dependencies = [
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
"env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"errno 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
@@ -34,6 +34,11 @@ dependencies = [
]
[[package]]
+name = "aster"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
name = "azure"
version = "0.1.0"
source = "git+https://github.com/servo/rust-azure#d8c86d7864bdf782734981f17ca7561c97bdaf98"
@@ -42,7 +47,7 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"freetype-sys 2.4.11 (git+https://github.com/servo/libfreetype2)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -72,7 +77,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"canvas_traits 0.0.1",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
@@ -88,7 +93,7 @@ version = "0.0.1"
dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"offscreen_gl_context 0.1.0 (git+https://github.com/ecoal95/rust-offscreen-rendering-context)",
@@ -129,10 +134,11 @@ dependencies = [
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"layout_traits 0.0.1",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -315,13 +321,15 @@ dependencies = [
[[package]]
name = "euclid"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -397,7 +405,7 @@ dependencies = [
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 0.1.0 (git+https://github.com/servo/core-text-rs)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"fontconfig 0.1.0 (git+https://github.com/servo/rust-fontconfig)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
@@ -533,12 +541,23 @@ source = "git+https://github.com/servo/io-surface-rs#f772aa79f487d1722ec6ad3d3c3
dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
+name = "ipc-channel"
+version = "0.1.0"
+source = "git+https://github.com/pcwalton/ipc-channel#1043d943a4da75ba302cfbe0b55afe1c84887560"
+dependencies = [
+ "libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "js"
version = "0.1.0"
source = "git+https://github.com/servo/rust-mozjs#f59c04795c84b82e00fdbd694bed90c56fa6567a"
@@ -572,7 +591,7 @@ dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"egl 0.1.0 (git+https://github.com/servo/rust-egl)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.0.1 (git+https://github.com/servo/rust-glx)",
"io-surface 0.1.0 (git+https://github.com/servo/io-surface-rs)",
@@ -594,10 +613,11 @@ dependencies = [
"clock_ticks 0.0.6 (git+https://github.com/tomaka/clock_ticks)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
"gfx_traits 0.0.1",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layout_traits 0.0.1",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -621,12 +641,15 @@ dependencies = [
name = "layout_traits"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx 0.0.1",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"msg 0.0.1",
"net_traits 0.0.1",
"profile_traits 0.0.1",
"script_traits 0.0.1",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
]
@@ -704,12 +727,15 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.1.0 (git+https://github.com/servo/io-surface-rs)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"layers 0.1.0 (git+https://github.com/servo/rust-layers)",
"png 0.1.0 (git+https://github.com/servo/rust-png)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
"util 0.0.1",
@@ -721,7 +747,7 @@ version = "0.0.1"
dependencies = [
"cookie 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -741,7 +767,7 @@ dependencies = [
name = "net_traits"
version = "0.0.1"
dependencies = [
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
@@ -775,7 +801,7 @@ source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#46c5cc
dependencies = [
"cgl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"khronos_api 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -896,6 +922,27 @@ dependencies = [
]
[[package]]
+name = "quasi"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "quasi_codegen"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "aster 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "quasi_macros"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "quasi_codegen 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "quicksort"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -946,10 +993,11 @@ dependencies = [
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)",
"js 0.1.0 (git+https://github.com/servo/rust-mozjs)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -981,7 +1029,7 @@ name = "script_traits"
version = "0.0.1"
dependencies = [
"devtools_traits 0.0.1",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1",
"net_traits 0.0.1",
@@ -1005,6 +1053,32 @@ dependencies = [
]
[[package]]
+name = "serde"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "serde_codegen"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "aster 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quasi 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quasi_macros 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "serde_macros"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "serde_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "servo"
version = "0.0.1"
dependencies = [
@@ -1086,7 +1160,7 @@ dependencies = [
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1173,7 +1247,7 @@ dependencies = [
"azure 0.1.0 (git+https://github.com/servo/rust-azure)",
"bitflags 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"num 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1181,6 +1255,8 @@ dependencies = [
"plugins 0.0.1",
"rand 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_macros 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"smallvec 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"url 0.2.35 (registry+https://github.com/rust-lang/crates.io-index)",
]