aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-08-17 13:22:52 -0500
committerGitHub <noreply@github.com>2016-08-17 13:22:52 -0500
commitec53136863f20b80caf165d2f15e8a77d614536e (patch)
treeaea6b11eaa16dfcd2b5cc613e6b9678d3fd09253
parentb61c45639a264943f8dec61c66b46d40f9d274a1 (diff)
parentdd377164595a91cb5fb6eab5e354cf51814ff7d1 (diff)
downloadservo-ec53136863f20b80caf165d2f15e8a77d614536e.tar.gz
servo-ec53136863f20b80caf165d2f15e8a77d614536e.zip
Auto merge of #11756 - vvuk:servo-msvc, r=larsbergstrom
MSVC support for Servo, and CMake builds for native code This is the base PR for MSVC builds of servo and dependent crates. It's got replacements in the Cargo.toml to pull in the right versions, to make sure that crates were properly converted to CMake for all other platforms, not just Windows. (Servo builds with MSVC 2015 with this PR; also with 2013, though a manual change in rust-mozjs to select a different set of bindings is needed.) This PR isn't quite ready yet, but I want bors-servo to do builds. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11756) <!-- Reviewable:end -->
-rw-r--r--appveyor.yml86
-rw-r--r--components/gfx/Cargo.toml2
-rw-r--r--components/gfx/lib.rs4
-rw-r--r--components/gfx/platform/dummy/font.rs80
-rw-r--r--components/gfx/platform/dummy/font_context.rs13
-rw-r--r--components/gfx/platform/dummy/font_list.rs24
-rw-r--r--components/gfx/platform/dummy/font_template.rs39
-rw-r--r--components/gfx/platform/mod.rs15
-rw-r--r--components/script/CMakeLists.txt102
-rw-r--r--components/script/Cargo.toml3
-rw-r--r--components/script/build.rs33
-rw-r--r--components/script/dom/bindings/codegen/GlobalGen.py7
-rw-r--r--components/script/dom/bindings/codegen/pythonpath.py61
-rw-r--r--components/script/dom/mod.rs3
-rw-r--r--components/script/makefile.cargo59
-rw-r--r--components/servo/Cargo.lock256
-rwxr-xr-xmach3
-rw-r--r--mach.bat2
-rw-r--r--ports/cef/Cargo.lock256
-rw-r--r--ports/geckolib/Cargo.lock218
-rw-r--r--python/servo/build_commands.py105
-rw-r--r--python/servo/command_base.py22
-rw-r--r--python/servo/testing_commands.py11
-rw-r--r--python/servo/win32_toast.py45
-rw-r--r--python/tidy/servo_tidy/tidy.py19
25 files changed, 1279 insertions, 189 deletions
diff --git a/appveyor.yml b/appveyor.yml
index 148ee4fb5bf..6247663853f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,9 +1,35 @@
version: 1.0.{build}
environment:
- PATH: 'C:\msys64\mingw64\bin;C:\msys64\usr\bin\;%PATH%'
- MSYSTEM: 'MSYS'
- MSYS: 'winsymlinks=lnk'
+ RUST_BACKTRACE: 1
+ # The appveyor image we use has a pretty huge set of things installed... we make the
+ # initial PATH something sane so we know what to expect
+ PATH: "C:\\windows\\system32;\
+ C:\\windows;\
+ C:\\windows\\System32\\Wbem;\
+ C:\\windows\\System32\\WindowsPowerShell\\v1.0;\
+ C:\\ProgramData\\chocolatey\\bin;\
+ C:\\Python27;\
+ C:\\Python27\\Scripts;\
+ C:\\Tools\\PsTools;\
+ C:\\Tools\\NuGet3;\
+ C:\\Program Files\\Microsoft\\Web Platform Installer\\;\
+ C:\\Program Files\\7-Zip;\
+ C:\\Program Files\\Mercurial;\
+ C:\\Program Files (x86)\\Subversion\\bin;\
+ C:\\Program Files (x86)\\CMake\\bin;\
+ C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;\
+ C:\\Program Files (x86)\\MSBuild\\14.0\\Bin;\
+ C:\\Program Files\\Amazon\\AWSCLI\\;\
+ C:\\Program Files\\Microsoft Windows Performance Toolkit\\;\
+ C:\\Program Files\\LLVM\\bin;\
+ C:\\Program Files\\Git LFS;\
+ C:\\Program Files\\Git\\cmd;\
+ C:\\Program Files\\Git\\usr\\bin;\
+ C:\\Program Files\\AppVeyor\\BuildAgent;"
+ matrix:
+ - TARGET: nightly-x86_64-pc-windows-msvc
+ - TARGET: nightly-x86_64-pc-windows-gnu
branches:
only:
@@ -17,16 +43,41 @@ cache:
- .cargo -> rust-nightly-date, cargo-nightly-build
install:
- - bash -lc "echo $MSYSTEM; pacman --needed --noconfirm -Sy pacman-mirrors"
- - bash -lc "pacman --noconfirm -Sy"
- - bash -lc "pacman -Sy --needed --noconfirm git mingw-w64-x86_64-toolchain mingw-w64-x86_64-freetype mingw-w64-x86_64-icu mingw-w64-x86_64-nspr mingw-w64-x86_64-ca-certificates mingw-w64-x86_64-expat mingw-w64-x86_64-cmake tar diffutils patch patchutils make python2-setuptools mingw-w64-x86_64-ffmpeg"
- - bash -lc "easy_install-2.7 pip virtualenv"
- - bash -lc "mv /mingw64/bin/python2.exe /mingw64/bin/python2-mingw64.exe"
- - bash -lc "mv /mingw64/bin/python2.7.exe /mingw64/bin/python2.7-mingw64.exe"
- # Downgrade GCC to 5.4.0-1 - https://github.com/servo/servo/issues/12512
- - set GCC_URL=http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc
- - set GCC_EXT=5.4.0-1-any.pkg.tar.xz
- - bash -lc "pacman -U --noconfirm $GCC_URL-$GCC_EXT $GCC_URL-ada-$GCC_EXT $GCC_URL-fortran-$GCC_EXT $GCC_URL-libgfortran-$GCC_EXT $GCC_URL-libs-$GCC_EXT $GCC_URL-objc-$GCC_EXT"
+ - if %TARGET:*-msvc=msvc%==msvc set BUILD_ENV=msvc
+ - if %TARGET:*-gnu=gnu%==gnu set BUILD_ENV=gnu
+ - ps: 'if ($env:BUILD_ENV -eq "msvc") {
+ Start-FileDownload "http://servo-rust.s3.amazonaws.com/build/openssl-and-ffmpeg.zip" -ErrorAction Stop ;
+ Start-FileDownload "http://servo-rust.s3.amazonaws.com/build/ninja.zip" -ErrorAction Stop ;
+ Start-FileDownload "http://servo-rust.s3.amazonaws.com/build/MozillaBuildSetup-2.2.0.exe" -ErrorAction Stop ;
+ .\MozillaBuildSetup-2.2.0.exe /S | Out-Null ;
+ 7z x openssl-and-ffmpeg.zip | Out-Null ;
+ 7z x ninja.zip | Out-Null ;
+ Copy-Item C:\mozilla-build\yasm\yasm.exe C:\mozilla-build\msys\bin ;
+ Copy-Item C:\mozilla-build\mozmake\mozmake.exe C:\mozilla-build\msys\bin ;
+ $env:MOZTOOLS_PATH="C:\mozilla-build\msys\bin" ;
+ $env:NATIVE_WIN32_PYTHON="C:/Python27/python.exe" ;
+ $env:PATH="$pwd\ninja;$env:PATH" ;
+ $env:OPENSSL_INCLUDE_DIR="$pwd\openssl-bin\openssl-1.0.1t-vs2015\include" ;
+ $env:OPENSSL_LIB_DIR="$pwd\openssl-bin\openssl-1.0.1t-vs2015\lib64" ;
+ $env:OPENSSL_LIBS="ssleay32MD:libeay32MD" ;
+ $env:FFMPEG_INCLUDE_DIR="$pwd\ffmpeg-bin\include" ;
+ $env:FFMPEG_LIB_DIR="$pwd\ffmpeg-bin\lib" ;
+ $env:FFMPEG_LIBS="avformat:avcodec:avutil" ;
+ }'
+ - if %BUILD_ENV%==msvc call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
+ - if %BUILD_ENV%==gnu set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin\;%PATH%
+ - if %BUILD_ENV%==gnu set MSYSTEM=MINGW64
+ - if %BUILD_ENV%==gnu set MSYS=winsymlinks=lnk
+ - if %BUILD_ENV%==gnu bash -lc "echo $MSYSTEM; pacman --needed --noconfirm -Sy pacman-mirrors"
+ - if %BUILD_ENV%==gnu bash -lc "pacman --noconfirm -Sy"
+ - if %BUILD_ENV%==gnu bash -lc "pacman -Sy --needed --noconfirm git mingw-w64-x86_64-toolchain mingw-w64-x86_64-freetype mingw-w64-x86_64-icu mingw-w64-x86_64-nspr mingw-w64-x86_64-ca-certificates mingw-w64-x86_64-expat mingw-w64-x86_64-cmake tar diffutils patch patchutils make python2-setuptools mingw-w64-x86_64-ffmpeg"
+ - if %BUILD_ENV%==gnu bash -lc "easy_install-2.7 pip virtualenv"
+ - if %BUILD_ENV%==gnu bash -lc "mv /mingw64/bin/python2.exe /mingw64/bin/python2-mingw64.exe"
+ - if %BUILD_ENV%==gnu bash -lc "mv /mingw64/bin/python2.7.exe /mingw64/bin/python2.7-mingw64.exe"
+ # Downgrade msys2 build GCC to 5.4.0-1 - https://github.com/servo/servo/issues/12512
+ - if %BUILD_ENV%==gnu set GCC_URL=http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc
+ - if %BUILD_ENV%==gnu set GCC_EXT=5.4.0-1-any.pkg.tar.xz
+ - if %BUILD_ENV%==gnu bash -lc "pacman -U --noconfirm $GCC_URL-$GCC_EXT $GCC_URL-ada-$GCC_EXT $GCC_URL-fortran-$GCC_EXT $GCC_URL-libgfortran-$GCC_EXT $GCC_URL-libs-$GCC_EXT $GCC_URL-objc-$GCC_EXT"
# Uncomment these lines to expose RDP access information to the build machine in the build log.
#init:
@@ -36,9 +87,10 @@ install:
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
build_script:
- - cmd: >-
- set MSYSTEM=MINGW64
-
- bash -lc "cd $APPVEYOR_BUILD_FOLDER; ./mach build -d -v && ./mach test-unit"
+ - echo PATH %PATH%
+ - echo VSINSTALLDIR %VSINSTALLDIR%
+ - echo MOZTOOLS_PATH %MOZTOOLS_PATH%
+ - if %BUILD_ENV%==msvc cd %APPVEYOR_BUILD_FOLDER% && mach build -d -v && mach test-unit
+ - if %BUILD_ENV%==gnu bash -lc "cd $APPVEYOR_BUILD_FOLDER; ./mach build -d -v && ./mach test-unit"
test: off
diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml
index 9e1eaa1725e..91d62e7cdd1 100644
--- a/components/gfx/Cargo.toml
+++ b/components/gfx/Cargo.toml
@@ -57,7 +57,7 @@ core-foundation = "0.2"
core-graphics = "0.4"
core-text = "2.0"
-[target.'cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))'.dependencies]
+[target.'cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))'.dependencies]
freetype = {git = "https://github.com/servo/rust-freetype"}
servo-fontconfig = "0.2.1"
diff --git a/components/gfx/lib.rs b/components/gfx/lib.rs
index b16ae9c555b..bed633b9562 100644
--- a/components/gfx/lib.rs
+++ b/components/gfx/lib.rs
@@ -37,9 +37,9 @@ extern crate euclid;
extern crate fnv;
// Platforms that use Freetype/Fontconfig library dependencies
-#[cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))]
+#[cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))]
extern crate fontconfig;
-#[cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))]
+#[cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))]
extern crate freetype;
extern crate gfx_traits;
diff --git a/components/gfx/platform/dummy/font.rs b/components/gfx/platform/dummy/font.rs
new file mode 100644
index 00000000000..096580c66db
--- /dev/null
+++ b/components/gfx/platform/dummy/font.rs
@@ -0,0 +1,80 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use app_units::Au;
+use font::{FontHandleMethods, FontMetrics, FontTableMethods};
+use font::{FontTableTag, FractionalPixel};
+use platform::font_context::FontContextHandle;
+use platform::font_template::FontTemplateData;
+use std::sync::Arc;
+use style::computed_values::{font_stretch, font_weight};
+use text::glyph::GlyphId;
+
+#[derive(Debug)]
+pub struct FontTable {
+ buffer: Vec<u8>,
+}
+
+impl FontTableMethods for FontTable {
+ fn buffer(&self) -> &[u8] {
+ &self.buffer
+ }
+}
+
+#[derive(Debug)]
+pub struct FontHandle {
+ handle: FontContextHandle,
+}
+
+impl Drop for FontHandle {
+ fn drop(&mut self) {
+ }
+}
+
+impl FontHandleMethods for FontHandle {
+ fn new_from_template(fctx: &FontContextHandle,
+ template: Arc<FontTemplateData>,
+ pt_size: Option<Au>)
+ -> Result<FontHandle, ()> {
+ Err(())
+ }
+
+ fn template(&self) -> Arc<FontTemplateData> {
+ unimplemented!()
+ }
+ fn family_name(&self) -> String {
+ String::from("Unknown")
+ }
+ fn face_name(&self) -> String {
+ String::from("Unknown")
+ }
+ fn is_italic(&self) -> bool {
+ false
+ }
+ fn boldness(&self) -> font_weight::T {
+ font_weight::T::Weight400
+ }
+ fn stretchiness(&self) -> font_stretch::T {
+ font_stretch::T::normal
+ }
+ fn glyph_index(&self, codepoint: char) -> Option<GlyphId> {
+ None
+ }
+ fn glyph_h_kerning(&self, first_glyph: GlyphId, second_glyph: GlyphId)
+ -> FractionalPixel {
+ 0.0
+ }
+ fn can_do_fast_shaping(&self) -> bool {
+ false
+ }
+ fn glyph_h_advance(&self, glyph: GlyphId) -> Option<FractionalPixel> {
+ None
+ }
+ fn metrics(&self) -> FontMetrics {
+ unimplemented!()
+ }
+ fn table_for_tag(&self, tag: FontTableTag) -> Option<FontTable> {
+ None
+ }
+}
diff --git a/components/gfx/platform/dummy/font_context.rs b/components/gfx/platform/dummy/font_context.rs
new file mode 100644
index 00000000000..4b07896b2dc
--- /dev/null
+++ b/components/gfx/platform/dummy/font_context.rs
@@ -0,0 +1,13 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#[derive(Clone, HeapSizeOf, Debug)]
+pub struct FontContextHandle;
+
+impl FontContextHandle {
+ pub fn new() -> FontContextHandle {
+ FontContextHandle
+ }
+}
+
diff --git a/components/gfx/platform/dummy/font_list.rs b/components/gfx/platform/dummy/font_list.rs
new file mode 100644
index 00000000000..6502572c287
--- /dev/null
+++ b/components/gfx/platform/dummy/font_list.rs
@@ -0,0 +1,24 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pub fn for_each_available_family<F>(mut callback: F) where F: FnMut(String)
+{
+}
+
+pub fn for_each_variation<F>(family_name: &str, mut callback: F)
+ where F: FnMut(String)
+{
+}
+
+pub fn system_default_family(generic_name: &str) -> Option<String> {
+ None
+}
+
+pub fn last_resort_font_families() -> Vec<String> {
+ vec!(
+ "Unknown".to_owned()
+ )
+}
+
+pub static SANS_SERIF_FONT_FAMILY: &'static str = "Unknown";
diff --git a/components/gfx/platform/dummy/font_template.rs b/components/gfx/platform/dummy/font_template.rs
new file mode 100644
index 00000000000..5e38165a7c6
--- /dev/null
+++ b/components/gfx/platform/dummy/font_template.rs
@@ -0,0 +1,39 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+use string_cache::Atom;
+use webrender_traits::NativeFontHandle;
+
+#[derive(Deserialize, Serialize, Debug)]
+pub struct FontTemplateData {
+ pub bytes: Vec<u8>,
+ pub identifier: Atom,
+}
+
+impl FontTemplateData {
+ pub fn new(identifier: Atom, font_data: Option<Vec<u8>>) -> FontTemplateData {
+ let bytes = match font_data {
+ Some(bytes) => {
+ bytes
+ },
+ None => {
+ unimplemented!()
+ }
+ };
+
+ FontTemplateData {
+ bytes: bytes,
+ identifier: identifier,
+ }
+ }
+ pub fn bytes(&self) -> Vec<u8> {
+ self.bytes.clone()
+ }
+ pub fn bytes_if_in_memory(&self) -> Option<Vec<u8>> {
+ Some(self.bytes())
+ }
+ pub fn native_font(&self) -> Option<NativeFontHandle> {
+ None
+ }
+}
diff --git a/components/gfx/platform/mod.rs b/components/gfx/platform/mod.rs
index fed55781486..9f81d124b29 100644
--- a/components/gfx/platform/mod.rs
+++ b/components/gfx/platform/mod.rs
@@ -2,13 +2,16 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#[cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))]
+#[cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))]
pub use platform::freetype::{font, font_context, font_list, font_template};
#[cfg(target_os = "macos")]
pub use platform::macos::{font, font_context, font_list, font_template};
-#[cfg(any(target_os = "linux", target_os = "android", target_os = "windows"))]
+#[cfg(all(target_os = "windows", target_env = "msvc"))]
+pub use platform::dummy::{font, font_context, font_list, font_template};
+
+#[cfg(any(target_os = "linux", target_os = "android", all(target_os = "windows", target_env = "gnu")))]
mod freetype {
use libc::c_char;
use std::ffi::CStr;
@@ -33,3 +36,11 @@ mod macos {
pub mod font_list;
pub mod font_template;
}
+
+#[cfg(all(target_os = "windows", target_env = "msvc"))]
+mod dummy {
+ pub mod font;
+ pub mod font_context;
+ pub mod font_list;
+ pub mod font_template;
+}
diff --git a/components/script/CMakeLists.txt b/components/script/CMakeLists.txt
new file mode 100644
index 00000000000..30bb03f56b5
--- /dev/null
+++ b/components/script/CMakeLists.txt
@@ -0,0 +1,102 @@
+project(script)
+cmake_minimum_required(VERSION 2.6)
+
+set(DUMMY ${CMAKE_BUILD_TYPE})
+
+FUNCTION(PREPEND var prefix)
+ SET(listVar "")
+ FOREACH(f ${ARGN})
+ LIST(APPEND listVar "${prefix}/${f}")
+ ENDFOREACH(f)
+ SET(${var} "${listVar}" PARENT_SCOPE)
+ENDFUNCTION(PREPEND)
+
+set(bindings_src ${PROJECT_SOURCE_DIR}/dom/bindings/codegen)
+set(webidls_src ${PROJECT_SOURCE_DIR}/dom/webidls)
+
+# Without Bindings/* stuff, since we install that separately below
+set(globalgen_base_src
+ PrototypeList.rs
+ RegisterBindings.rs
+ InterfaceObjectMap.rs
+ InterfaceTypes.rs
+ InheritTypes.rs
+ UnionTypes.rs
+ )
+
+set(globalgen_src
+ ${globalgen_base_src}
+ Bindings/mod.rs
+ )
+
+file(GLOB_RECURSE webidls ${webidls_src}/*.webidl)
+string(REGEX REPLACE ";" "\n" webidl_filelist "${webidls}")
+file(WRITE "${PROJECT_BINARY_DIR}/webidls.list" "${webidl_filelist}")
+string(REGEX REPLACE "\\.webidl(;|$)" "\\1" bindings "${webidls}")
+string(REGEX REPLACE "(^|;)${webidls_src}/" "\\1" bindings "${bindings}")
+
+set(globalgen_deps
+ ${bindings_src}/GlobalGen.py
+ ${bindings_src}/Bindings.conf
+ ${bindings_src}/Configuration.py
+ ${bindings_src}/CodegenRust.py
+ ${bindings_src}/parser/WebIDL.py
+ )
+set(bindinggen_deps
+ ${bindings_src}/BindingGen.py
+ ${bindings_src}/Bindings.conf
+ ${bindings_src}/Configuration.py
+ ${bindings_src}/CodegenRust.py
+ ${bindings_src}/parser/WebIDL.py
+ )
+
+add_custom_command(
+ OUTPUT Bindings
+ COMMAND ${CMAKE_COMMAND} -E make_directory Bindings
+ )
+add_custom_command(
+ OUTPUT _cache
+ COMMAND ${CMAKE_COMMAND} -E make_directory _cache
+ )
+
+add_custom_command(
+ OUTPUT ParserResults.pkl
+ COMMAND python -B ${bindings_src}/pythonpath.py -I ${bindings_src}/parser -I ${bindings_src}/ply
+ ${bindings_src}/GlobalGen.py
+ --cachedir=_cache
+ --filelist=webidls.list
+ ${bindings_src}/Bindings.conf
+ .
+ ${PROJECT_SOURCE_DIR}
+ DEPENDS Bindings _cache ${globalgen_deps} ${webidls}
+ VERBATIM
+ )
+
+# We need an intermediate custom target for this, due to this misfeature:
+# > If any dependency is an OUTPUT of another custom command in the same
+# > directory CMake automatically brings the other custom command into the
+# > target in which this command is built.
+# So, depending directly on ParserResults.pkl from the add_custom_command
+# below would cause GlobalGen.py to be executed each time.
+add_custom_target(ParserResults ALL DEPENDS ParserResults.pkl)
+add_custom_target(generate-bindings ALL)
+
+foreach(binding IN LISTS bindings)
+ add_custom_command(
+ OUTPUT Bindings/${binding}Binding.rs
+ COMMAND python -B ${bindings_src}/pythonpath.py -I ${bindings_src}/parser -I ${bindings_src}/ply
+ ${bindings_src}/BindingGen.py
+ ${bindings_src}/Bindings.conf
+ .
+ Bindings/${binding}Binding
+ ${webidls_src}/${binding}.webidl
+ DEPENDS Bindings ${bindinggen_deps} ${webidls_src}/${binding}.webidl ParserResults
+ VERBATIM
+ )
+ add_custom_target(${binding} DEPENDS Bindings/${binding}Binding.rs)
+ add_dependencies(generate-bindings ${binding})
+endforeach()
+
+PREPEND(globalgen_out ${CMAKE_BINARY_DIR}/ ${globalgen_base_src})
+install(FILES ${globalgen_out} DESTINATION .)
+install(DIRECTORY ${CMAKE_BINARY_DIR}/Bindings/ DESTINATION Bindings)
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index 717de7b380a..2799b9bc4a4 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -14,6 +14,9 @@ path = "lib.rs"
[features]
debugmozjs = ['js/debugmozjs']
+[build-dependencies]
+cmake = "0.1"
+
[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tinyfiledialogs = {git = "https://github.com/jdm/tinyfiledialogs"}
diff --git a/components/script/build.rs b/components/script/build.rs
index a0d693d152f..019a55f25a6 100644
--- a/components/script/build.rs
+++ b/components/script/build.rs
@@ -2,17 +2,36 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate cmake;
use std::env;
-use std::process::Command;
use std::time::Instant;
fn main() {
let start = Instant::now();
- let num_jobs = env::var("NUM_JOBS").unwrap();
- assert!(Command::new("make")
- .args(&["-f", "makefile.cargo", "-j", &num_jobs])
- .status()
- .unwrap()
- .success());
+
+ // This must use the Ninja generator -- it's the only one that
+ // parallelizes cmake's output properly. (Cmake generates
+ // separate makefiles, each of which try to build
+ // ParserResults.pkl, and then stomp on eachother.)
+ let mut build = cmake::Config::new(".");
+
+ let target = env::var("TARGET").unwrap();
+ if target.contains("windows-msvc") {
+ // We must use Ninja on Windows for this -- msbuild is painfully slow,
+ // and ninja is easier to install than make.
+ build.generator("Ninja");
+ // because we're using ninja, we need to explicitly set these
+ // to VC++, otherwise it'll try to use cc
+ build.define("CMAKE_C_COMPILER", "cl.exe")
+ .define("CMAKE_CXX_COMPILER", "cl.exe");
+ // We have to explicitly specify the full path to link.exe,
+ // for reasons that I don't understand. If we just give
+ // link.exe, it tries to use script-*/out/link.exe, which of
+ // course does not exist.
+ build.define("CMAKE_LINKER", "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\link.exe");
+ }
+
+ build.build();
+
println!("Binding generation completed in {}s", start.elapsed().as_secs());
}
diff --git a/components/script/dom/bindings/codegen/GlobalGen.py b/components/script/dom/bindings/codegen/GlobalGen.py
index 23779d9e6d5..8f122f52bd1 100644
--- a/components/script/dom/bindings/codegen/GlobalGen.py
+++ b/components/script/dom/bindings/codegen/GlobalGen.py
@@ -34,6 +34,8 @@ def main():
help="Directory in which to cache lex/parse tables.")
o.add_option("--only-html", dest='only_html', action="store_true",
help="Only generate HTML from WebIDL inputs")
+ o.add_option("--filelist", dest='filelist', default=None,
+ help="A file containing the list (one per line) of webidl files to process.")
(options, args) = o.parse_args()
if len(args) < 2:
@@ -42,7 +44,10 @@ def main():
configFile = args[0]
outputdir = args[1]
baseDir = args[2]
- fileList = args[3:]
+ if options.filelist is not None:
+ fileList = (l.strip() for l in open(options.filelist).xreadlines())
+ else:
+ fileList = args[3:]
# Parse the WebIDL.
parser = WebIDL.Parser(options.cachedir)
diff --git a/components/script/dom/bindings/codegen/pythonpath.py b/components/script/dom/bindings/codegen/pythonpath.py
new file mode 100644
index 00000000000..793089551b5
--- /dev/null
+++ b/components/script/dom/bindings/codegen/pythonpath.py
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+"""
+Run a python script, adding extra directories to the python path.
+"""
+
+
+def main(args):
+ def usage():
+ print >>sys.stderr, "pythonpath.py -I directory script.py [args...]"
+ sys.exit(150)
+
+ paths = []
+
+ while True:
+ try:
+ arg = args[0]
+ except IndexError:
+ usage()
+
+ if arg == '-I':
+ args.pop(0)
+ try:
+ path = args.pop(0)
+ except IndexError:
+ usage()
+
+ paths.append(os.path.abspath(path))
+ continue
+
+ if arg.startswith('-I'):
+ paths.append(os.path.abspath(args.pop(0)[2:]))
+ continue
+
+ if arg.startswith('-D'):
+ os.chdir(args.pop(0)[2:])
+ continue
+
+ break
+
+ script = args[0]
+
+ sys.path[0:0] = [os.path.abspath(os.path.dirname(script))] + paths
+ sys.argv = args
+ sys.argc = len(args)
+
+ frozenglobals['__name__'] = '__main__'
+ frozenglobals['__file__'] = script
+
+ execfile(script, frozenglobals)
+
+# Freeze scope here ... why this makes things work I have no idea ...
+frozenglobals = globals()
+
+import sys
+import os
+
+if __name__ == '__main__':
+ main(sys.argv[1:])
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index c2121c84139..432246d814f 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -206,7 +206,10 @@
pub mod macros;
pub mod types {
+ #[cfg(not(target_env = "msvc"))]
include!(concat!(env!("OUT_DIR"), "/InterfaceTypes.rs"));
+ #[cfg(target_env = "msvc")]
+ include!(concat!(env!("OUT_DIR"), "/build/InterfaceTypes.rs"));
}
pub mod abstractworker;
diff --git a/components/script/makefile.cargo b/components/script/makefile.cargo
deleted file mode 100644
index e12c4bdab23..00000000000
--- a/components/script/makefile.cargo
+++ /dev/null
@@ -1,59 +0,0 @@
-# Recursive wildcard function
-# http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html
-rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) \
- $(filter $(subst *,%,$2),$d))
-
-PYTHON = $(shell which python2.7 2>/dev/null || echo python) -B
-BINDINGS_SRC = $(shell pwd)/dom/bindings/codegen
-WEBIDLS_SRC = $(shell pwd)/dom/webidls
-WEBIDLS = $(call rwildcard,$(WEBIDLS_SRC),*.webidl)
-BINDINGS = $(patsubst %.webidl,%Binding.rs,$(WEBIDLS))
-AUTOGEN_SRC = $(foreach var,$(BINDINGS),$(subst $(WEBIDLS_SRC),$(OUT_DIR)/Bindings,$(var)))
-
-export PYTHONPATH := $(BINDINGS_SRC)/parser:$(BINDINGS_SRC)/ply:$(PYTHONPATH)
-
-CACHE_DIR = $(OUT_DIR)/_cache
-
-bindinggen_dependencies := $(addprefix $(BINDINGS_SRC)/,BindingGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(OUT_DIR)/ParserResults.pkl $(OUT_DIR)/Bindings/.done
-
-globalgen_dependencies := $(addprefix $(BINDINGS_SRC)/,GlobalGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py) $(CACHE_DIR)/.done $(OUT_DIR)/Bindings/.done
-
-.PHONY: all dom_docs
-all: $(AUTOGEN_SRC)
-
-$(OUT_DIR)/Bindings/.done:
- mkdir -p $(OUT_DIR)/Bindings
- touch $@
-
-$(CACHE_DIR)/.done:
- mkdir -p $(CACHE_DIR)
- touch $@
-
-$(OUT_DIR)/ParserResults.pkl: $(globalgen_dependencies) $(WEBIDLS)
- $(PYTHON) \
- $(BINDINGS_SRC)/GlobalGen.py \
- --cachedir=$(CACHE_DIR) \
- $(BINDINGS_SRC)/Bindings.conf \
- $(OUT_DIR) \
- . \
- $(WEBIDLS)
-
-dom_docs: $(CACHE_DIR)/.done
- $(PYTHON) \
- $(BINDINGS_SRC)/GlobalGen.py \
- --cachedir=$(CACHE_DIR) \
- --only-html \
- $(BINDINGS_SRC)/Bindings.conf \
- $(OUT_DIR) \
- . \
- $(WEBIDLS)
-
-$(AUTOGEN_SRC): $(OUT_DIR)/Bindings/%Binding.rs: $(bindinggen_dependencies) \
- $(addprefix $(WEBIDLS_SRC)/,%.webidl)
- $(PYTHON) \
- $(BINDINGS_SRC)/BindingGen.py \
- $(BINDINGS_SRC)/Bindings.conf \
- $(OUT_DIR) \
- $(OUT_DIR)/Bindings/$*Binding \
- $(addprefix $(WEBIDLS_SRC)/,$*.webidl)
- touch $@
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index 38eaf227480..5b9fc065574 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -4,7 +4,7 @@ version = "0.0.1"
dependencies = [
"android_glue 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"backtrace 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "browserhtml 0.1.15 (git+https://github.com/browserhtml/browserhtml?branch=crate)",
+ "browserhtml 0.1.17 (git+https://github.com/browserhtml/browserhtml?branch=crate)",
"canvas 0.0.1",
"canvas_traits 0.0.1",
"compiletest_helper 0.0.1",
@@ -199,8 +199,8 @@ dependencies = [
[[package]]
name = "browserhtml"
-version = "0.1.15"
-source = "git+https://github.com/browserhtml/browserhtml?branch=crate#706302301a2800478239aef9688c2f087abf4e0b"
+version = "0.1.17"
+source = "git+https://github.com/browserhtml/browserhtml?branch=crate#82ab69c8a83a34c9f81adef57255557b1a52412f"
[[package]]
name = "byteorder"
@@ -676,10 +676,10 @@ dependencies = [
[[package]]
name = "expat-sys"
-version = "2.1.2"
+version = "2.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -768,7 +768,7 @@ dependencies = [
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gfx_traits 0.0.1",
- "harfbuzz-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "harfbuzz-sys 0.1.6 (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)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -896,9 +896,10 @@ dependencies = [
[[package]]
name = "harfbuzz-sys"
-version = "0.1.5"
+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)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1083,8 +1084,9 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.3"
-source = "git+https://github.com/servo/rust-mozjs#14e4556d7cd3dc4fd5eaf5e19e725a1325be14e6"
+source = "git+https://github.com/servo/rust-mozjs#755c8cc8cac7f6e51985c41507bac300d11e416e"
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)",
@@ -1274,7 +1276,7 @@ dependencies = [
[[package]]
name = "libz-sys"
-version = "1.0.4"
+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)",
@@ -1298,11 +1300,6 @@ version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
-name = "make-cmd"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "malloc_buf"
version = "0.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1366,10 +1363,10 @@ dependencies = [
[[package]]
name = "mozjs_sys"
version = "0.0.0"
-source = "git+https://github.com/servo/mozjs#94eabc218780b696933122184e524bd35544c378"
+source = "git+https://github.com/servo/mozjs#0f2ea3416044656e09f107b8f9e0d169264a7c77"
dependencies = [
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "libz-sys 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libz-sys 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1897,6 +1894,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1",
"caseless 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
@@ -2100,7 +2098,7 @@ name = "servo-fontconfig-sys"
version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2151,7 +2149,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "expat-sys 2.1.2 (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.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2398,7 +2396,7 @@ name = "unicode-script"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "harfbuzz-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2484,7 +2482,7 @@ dependencies = [
[[package]]
name = "video-metadata"
version = "0.1.3"
-source = "git+https://github.com/GuillaumeGomez/video-metadata-rs#44c8d547f9212be5d368a38d9f1238d85bc6728e"
+source = "git+https://github.com/GuillaumeGomez/video-metadata-rs#ca921f8529d4ed4b3e093fe30143b3fba08a7bf4"
dependencies = [
"gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2717,3 +2715,221 @@ dependencies = [
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
+[metadata]
+"checksum aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2b3fb52b09c1710b961acb35390d514be82e4ac96a9969a8e38565a29b878dc9"
+"checksum alloc-no-stdlib 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b21f6ad9c9957eb5d70c3dee16d31c092b3cab339628f821766b05e6833d72b8"
+"checksum android_glue 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f717214f8b7bac58e0fcfc2efcd716353b487a73f44935d7eab4e7b8f7d90778"
+"checksum angle 0.1.1 (git+https://github.com/servo/angle?branch=servo)" = "<none>"
+"checksum app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1634f9bb04d7ab8e763beb1d4be65464212f41d4c9da1ac41173fdb4c04cd26e"
+"checksum arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "16e3bdb2f54b3ace0285975d59a97cf8ed3855294b2b6bc651fcf22a9c352975"
+"checksum aster 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6583191799954e2f152217d98656c599b1a62456d88204dbfbcb212b43e3497"
+"checksum azure 0.4.7 (git+https://github.com/servo/rust-azure)" = "<none>"
+"checksum backtrace 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c6493ec8db942d97cec781f9fd090b0d5de4b47134cfbc31eea66d25496c3af8"
+"checksum backtrace-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ff73785ae8e06bb4a7b09e09f06d7434f9748b86d2f67bdf334b603354497e08"
+"checksum bincode 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa413a0580cf7d54f1938c13462fd32cff9099338bf161e15870cb05021df745"
+"checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c"
+"checksum bit-vec 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5b97c2c8e8bbb4251754f559df8af22fb264853c7d009084a576cdf12565089d"
+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+"checksum blurz 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a18fbcef6db7f58d135f77ad561e8f9b7fc809c91619c33422714cf5548004ed"
+"checksum brotli 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bff2d5511b5ba5840f46cc3f9c0c3ab09db20e9b9a4db344ef7df3fb547a627a"
+"checksum browserhtml 0.1.15 (git+https://github.com/browserhtml/browserhtml?branch=gh-pages)" = "<none>"
+"checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855"
+"checksum caseless 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b6893f86ac0c9275b5cbba9212ccd71020b447d4c3e2eebad70e1bc47fdd6dfb"
+"checksum cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de1e760d7b6535af4241fca8bd8adf68e2e7edacc6b29f5d399050c5e48cf88c"
+"checksum cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a88f6de807c90491d72a2951bf541bda481f5820cfe115fae431b8dd50d5160d"
+"checksum cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "dfcf5bcece56ef953b8ea042509e9dcbdfe97820b7e20d86beb53df30ed94978"
+"checksum cocoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b061f28efe5240041b29a5a2a6d350d014f26a7e256a17d897f6896b17ea91"
+"checksum color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a475fc4af42d83d28adf72968d9bcfaf035a1a9381642d8e85d8a04957767b0d"
+"checksum compiletest_rs 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "154a80a4eb92262d5f8ce48e301270e8f2a6943b817d8c519101fbd68c32ab1f"
+"checksum content-blocker 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8914f66cded7163409c6f95dae01867777d57af8467c3083b2570db6330c3831"
+"checksum cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e3d6405328b6edb412158b3b7710e2634e23f3614b9bb1c412df7952489a626"
+"checksum core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "20a6d0448d3a99d977ae4a2aa5a98d886a923e863e81ad9ff814645b6feb3bbd"
+"checksum core-foundation-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "05eed248dc504a5391c63794fe4fb64f46f071280afaa1b73308f3c0ce4574c5"
+"checksum core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0c56c6022ba22aedbaa7d231be545778becbe1c7aceda4c82ba2f2084dd4c723"
+"checksum core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "94d4f3fab9e0242a648728764ac50e322b61eeb28c2d26d483721fe392cb2878"
+"checksum crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "fb974f835e90390c5f9dfac00f05b06dc117299f5ea4e85fbc7bb443af4911cc"
+"checksum cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9b12b45a0985427aa2f6c629cc40756c7345819948436d9977f5a80b623a64c4"
+"checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"
+"checksum dbus 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aefec6d9031bc53358eb822549ca946f50c8618a85bfe8afa52816c3a978eecf"
+"checksum debug_unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a032eac705ca39214d169f83e3d3da290af06d8d1d344d1baad2fd002dca4b3"
+"checksum deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1614659040e711785ed8ea24219140654da1729f3ec8a47a9719d041112fe7bf"
+"checksum device 0.0.1 (git+https://github.com/servo/devices)" = "<none>"
+"checksum dlib 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8bd015f00d33d7e4ff66f1589fb824ccf3ccb10209b66c7b756f26ba9aa90215"
+"checksum dwmapi-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07c4c7cc7b396419bc0a4d90371d0cee16cb5053b53647d287c0b728000c41fe"
+"checksum dylib 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdff070fc467d71f23c5ac5ebfa0867e8f31146ef529b777723e8cba815e47ae"
+"checksum encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "1119ca1c88774efeed1a7926958e212e02af7437bdeab8520dbc7aa1abde3026"
+"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+"checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c"
+"checksum energymon 0.2.0 (git+https://github.com/energymon/energymon-rust.git)" = "<none>"
+"checksum energymon-builder 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum energymon-default-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum energymon-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79eff5be92a4d7d5bddf7daa7d650717ea71628634efe6ca7bcda85b2183c23"
+"checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb"
+"checksum euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "79b151a24962d2f15267afe1948e43c97cc330df55cf3414eb4d29e9498e23ad"
+"checksum expat-sys 2.1.3 (git+https://github.com/vvuk/libexpat.git?branch=msvcize)" = "<none>"
+"checksum expat-sys 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e7d69ae17563018c40eb8c2c2f0c7929cf1ab26490480f2823dff1edffb4d38e"
+"checksum flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "3eeb481e957304178d2e782f2da1257f1434dfecbae883bafb61ada2a9fea3bb"
+"checksum fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d3d4285d5aa1cf04504b7d8c2d1fdccf4586b56739499a04cc58663b2543cd30"
+"checksum freetype 0.1.0 (git+https://github.com/servo/rust-freetype)" = "<none>"
+"checksum fs2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "66fd7974e97e3c47dc89c146a05c6e8e90c4267daee9e75c229d4e049dce454d"
+"checksum futf 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7a9689380a2553b51c564b3d9178075c68ebd0b397972c783acfd28b46c28ad"
+"checksum gaol 0.0.1 (git+https://github.com/servo/gaol)" = "<none>"
+"checksum gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)" = "3da3a2cbaeb01363c8e3704fd9fd0eb2ceb17c6f27abd4c1ef040fb57d20dc79"
+"checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
+"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
+"checksum gif 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "01c7c19a035de94bd7afbaa62c241aadfbdf1a70f560b348d2312eafa566ca16"
+"checksum gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1d8edc81c5ae84605a62f5dac661a2313003b26d59839f81d47d46cf0f16a55"
+"checksum gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "13a363b2a5264b600e530db2f14b3c487098e6dee0655f2810ea779385cbac5a"
+"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
+"checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72"
+"checksum harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "16f772015f526a0cb0c642676cf696bcd2de35e4b91d016a8105755fec2bb373"
+"checksum heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "abb306abb8d398e053cfb1b3e7b72c2f580be048b85745c52652954f8ad1439c"
+"checksum heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6acc766436533f244943e2b33207436a1a0f354a2d1b90b1086669f5557ea851"
+"checksum heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78c0810722eacd0bdd3f1f691524bd9900bf8fed1947f6b883c10ddecd2560b1"
+"checksum heartbeats-simple-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3436e4747818db071e77851af361adb2fc36ef28723beae4fe3e5e5340804200"
+"checksum hpack 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d2da7d3a34cf6406d9d700111b8eafafe9a251de41ae71d8052748259343b58"
+"checksum html5ever 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fd04d31858b8fd8ac9d55570da8c822bc6defd2c1ac18a47cb70fc280f42b432"
+"checksum httparse 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "46534074dbb80b070d60a5cb8ecadd8963a00a438ae1a95268850a7ef73b67ae"
+"checksum hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "eb27e8a3e8f17ac43ffa41bbda9cf5ad3f9f13ef66fa4873409d4902310275f7"
+"checksum idna 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1053236e00ce4f668aeca4a769a09b3bf5a682d802abd6f3cb39374f6b162c11"
+"checksum image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7cd7efa3558b1acd537f2a6f9bcf15c4ae4842da38d2e2ea7c9ad023f36239b"
+"checksum immeta 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3e76ecb1d64979a91c7fc5b7c0495ef1467e3cbff759044f2b88878a5a845ef7"
+"checksum inflate 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
+"checksum io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "269269e9a441c883636513cbb0d2323c105d7c76a154899160140ad9c58a6eea"
+"checksum ipc-channel 0.4.0 (git+https://github.com/servo/ipc-channel)" = "<none>"
+"checksum jpeg-decoder 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b20f6cc8c490f3329fa799f227510085aab2a228bfcc49b1b173b14e0d790db7"
+"checksum js 0.1.3 (git+https://github.com/servo/rust-mozjs)" = "<none>"
+"checksum js 0.1.3 (git+https://github.com/vvuk/rust-mozjs.git?branch=rust-msvc)" = "<none>"
+"checksum kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b5e7edf375e6d26243bde172f1d5ed1446f4a766fc9b7006e1fd27258243f1"
+"checksum khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09c9d3760673c427d46f91a0350f0a84a52e6bc5a84adf26dc610b6c52436630"
+"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+"checksum layers 0.2.6 (git+https://github.com/servo/rust-layers)" = "<none>"
+"checksum lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "cf186d1a8aa5f5bee5fd662bc9c1b949e0259e1bcc379d1f006847b0080c7417"
+"checksum lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "49247ec2a285bb3dcb23cbd9c35193c025e7251bfce77c1d5da97e6362dffe7f"
+"checksum leak 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd100e01f1154f2908dfa7d02219aeab25d0b9c7fa955164192e3245255a0c73"
+"checksum leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40a8225d44241fd324a8af2806ba635fc7c8a7e9a7de4d5cf3ef54e71f5926fc"
+"checksum libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "d781ca9ed9bbe09595f6bbdeb9aeacb6b46154f1dd8c457a048d7d3c02561071"
+"checksum libloading 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dfa2c300418af0c8042e94f921274743fd05aa028bd365b42ce3469a6db15000"
+"checksum libressl-pnacl-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc058951ab6a3ef35ca16462d7642c4867e6403520811f28537a4e2f2db3e71"
+"checksum libz-sys 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c9795a8a0498b3abab873f8f063816fcc2e002388e89df87da065628dd5a8ed2"
+"checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054"
+"checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+"checksum mac 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1b1db08c0d0ddbb591e65f1da58d1cefccc94a2faa0c55bf979ce215a3e04d5e"
+"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+"checksum matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e"
+"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
+"checksum memmap 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f20f72ed93291a72e22e8b16bb18762183bb4943f0f483da5b8be1a9e8192752"
+"checksum mime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf93a79c700c9df8227ec6a4f0f27a8948373c079312bac24549d944cef85f64"
+"checksum mime_guess 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e9a7d89cb3bce9145b0d0339a0588b044e3e3e3faa1dcd74822ebdc36bfac020"
+"checksum miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d1f4d337a01c32e1f2122510fed46393d53ca35a7f429cb0450abaedfa3ed54"
+"checksum mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)" = "<none>"
+"checksum mozjs_sys 0.0.0 (git+https://github.com/vvuk/mozjs.git?branch=rust-msvc)" = "<none>"
+"checksum net2 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)" = "6a816012ca11cb47009693c1e0c6130e26d39e4d97ee2a13c50e868ec83e3204"
+"checksum nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4d9a22dbcebdeef7bf275cbf444d6521d4e7a2fee187b72d80dba0817120dd8f"
+"checksum num 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "c04bd954dbf96f76bab6e5bd6cef6f1ce1262d15268ce4f926d2b5b778fa7af2"
+"checksum num-bigint 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "41655c8d667be847a0b72fe0888857a7b3f052f691cf40852be5fcf87b274a65"
+"checksum num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "fb24d9bfb3f222010df27995441ded1e954f8f69cd35021f6bef02ca9552fb92"
+"checksum num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "287a1c9969a847055e1122ec0ea7a5c5d6f72aad97934e131c83d5c08ab4e45c"
+"checksum num-rational 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "48cdcc9ff4ae2a8296805ac15af88b3d88ce62128ded0cb74ffb63a587502a84"
+"checksum num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "51eab148f171aefad295f8cece636fc488b9b392ef544da31ea4b8ef6b9e9c39"
+"checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3"
+"checksum objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7c9311aa5acd7bee14476afa0f0557f564e9d0d61218a8b833d9b1f871fa5fba"
+"checksum odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b28c06e81b0f789122d415d6394b5fe849bde8067469f4c2980d3cdc10c78ec1"
+"checksum offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d854971e8569089b7f3a59fe77b2f2d63b848fdcbdb2ee5edcaf6f4b3efd7497"
+"checksum open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c228597177bc4a6876e278f7c7948ac033bfcb4d163ccdd5a009557c8fe5fa1e"
+"checksum openssl 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "c4117b6244aac42ed0150a6019b4d953d28247c5dd6ae6f46ae469b5f2318733"
+"checksum openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b8ac5e9d911dd4c3202bbf4139b73bc7a1231f7d0a39432c6f893745f0e04120"
+"checksum openssl-sys-extras 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "11c5e1dba7d3d03d80f045bf0d60111dc69213b67651e7c889527a3badabb9fa"
+"checksum openssl-verify 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ed86cce894f6b0ed4572e21eb34026f1dc8869cb9ee3869029131bc8c3feb2d"
+"checksum osmesa-sys 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e25c2d8d70fa255d45c280df2c6c22c89cca2b2bbb98a11f223d7cd5d5c5369d"
+"checksum phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "52c875926de24c01b5b69153eaa258b57920a39b44bbce8ef1f2052a6c5a6a1a"
+"checksum phf_codegen 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a8912c2cc0ea2e8ae70388ec0af9a445e7ab37b3c9cc61f059c2b34db8ed50b"
+"checksum phf_generator 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "04b5ea825e28cb6efd89d9133b129b2003b45a221aeda025509b125b00ecb7c4"
+"checksum phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "132ea70eed654520d98d0e54e262292a94bd5f150671d98b9c8d0782fafce37e"
+"checksum phf_shared 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2c43b5dbe94d31f1f4ed45c50bb06d70e72fd53f15422b0a915b5c237e130dd6"
+"checksum pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8cee804ecc7eaf201a4a207241472cc870e825206f6c031e3ee2a72fa425f2fa"
+"checksum pnacl-build-helper 1.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "61c9231d31aea845007443d62fcbb58bb6949ab9c18081ee1e09920e0cf1118b"
+"checksum png 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "38d3da7f9d4a160cf2caeaac01f71a0e6755712baa1b4ee157af2761c8fbdb8e"
+"checksum quasi 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "314e56e9e59af71a5b1f09fab15e8e66ab2ccb786688f8d2e04d98b8d7cbc161"
+"checksum quasi_codegen 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a3856abd5ec12f873eeac0837cce65ac33814ed4acba287a9e806620763d4b7"
+"checksum quasi_macros 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b530b7ff57b6a38e4d53909c64657f40e0eef6a8fea1f0943d76160c277c9c5"
+"checksum quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5950b7cb98904f6f7856bdff5b0987821f8a4ec4a67f4be892ddc8ed244ce89d"
+"checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5"
+"checksum rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e501871917624668fe601ad12a730450414f9b0b64722a898b040ce3ae1b0fa"
+"checksum ref_filter_map 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b5ceb840e4009da4841ed22a15eb49f64fdd00a2138945c5beacf506b2fb5ed"
+"checksum ref_slice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24c91f8f8903c37f0525112df98ef53b1985abca5702972e5e00854cd874baf2"
+"checksum regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)" = "e58a1b7d2bfecc0746e8587c30a53d01ea7bc0e98fac54e5aaa375b94338a0cc"
+"checksum regex-syntax 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "baa04823ba7be7ed0bed3d0704c7b923019d9c4e4931c5af2804c7c7a0e3d00b"
+"checksum rustc-demangle 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db0409577de8e3c214d35a81c4fd29bd07d445cb9151eacfcd588b2552c623d6"
+"checksum rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6159e4e6e559c81bd706afe9c8fd68f547d3e851ce12e76b1de7914bab61691b"
+"checksum rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084"
+"checksum scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef399c8893e8cb7aa9696e895427fab3a6bf265977bb96e126f24ddd2cda85a"
+"checksum selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a96b69bb9ea38d8dac49e26c8db1052847896009f7f6440c89e08e1b06483547"
+"checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
+"checksum serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0e0732aa8ec4267f61815a396a942ba3525062e3bd5520aa8419927cfc0a92"
+"checksum serde_codegen 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "973836af70870533bc6a332488ded6aef80a5ff507b663e8b4e1ef44580ea8fd"
+"checksum serde_codegen_internals 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eed6f11ba7400225025b44c77b4eca1655958aac6c586c5ec9c76fd5597ef849"
+"checksum serde_json 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c88a751caa8f0000058fb971cd443ed2e6b653f33f5a47f29892a8bd44ca4c1"
+"checksum serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "10aa279b5b061a3e827639cc15e563be096b7323c9c811e10a4b18ba4607eaf8"
+"checksum servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21069a884c33fe6ee596975e1f3849ed88c4ec857fbaf11d33672d8ebe051217"
+"checksum servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ab427a29b33b9b2f25f6c955d2c2f1bbd0d127fb7a936fa9090128c7638520f"
+"checksum servo-fontconfig-sys 2.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8a3cbabc5a1e8302caf38e91716e73024bc5989c9b3ca17b5f00f2ed53a57838"
+"checksum servo-freetype-sys 2.4.11 (git+https://github.com/vvuk/libfreetype2.git?branch=msvcize)" = "<none>"
+"checksum servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c9287d5d977ad911dc4def3b150feb4b662b21072a728c65adc7851dd7b0b28f"
+"checksum servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "6cbdd90c4b219101aca2328a508485c4a4623809886ae8df51ef07099b84da7a"
+"checksum servo-skia 0.20130412.12 (git+https://github.com/vvuk/skia.git?branch=msvcize)" = "<none>"
+"checksum servo-skia 0.20130412.12 (registry+https://github.com/rust-lang/crates.io-index)" = "964e66e672289d6f029822f2de8bce3b976a4c9f18c651ca3febad3020c80e39"
+"checksum shared_library 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e0979ddff251a81a12de16212ab8f5fac75a1c69b86a7c5809b7b610c350f049"
+"checksum shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f20b8f3c060374edb8046591ba28f62448c369ccbdc7b02075103fb3a9e38d"
+"checksum sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6649e43c1a1e68d29ed56d0dc3b5b6cf3b901da77cf107c4066b9e3da036df5"
+"checksum simd 0.1.0 (git+https://github.com/huonw/simd)" = "<none>"
+"checksum smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "fcc8d19212aacecf95e4a7a2179b26f7aeb9732a915cf01f05b0d3e044865410"
+"checksum solicit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "172382bac9424588d7840732b250faeeef88942e37b6e35317dce98cafdd75b2"
+"checksum string_cache 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "b0d1d74e1baf1502bc3084452d13e1f3b764e9555d90ce036c4b2b3be862c5d6"
+"checksum tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0b62933a3f96cd559700662c34f8bab881d9e3540289fb4f368419c7f13a5aa9"
+"checksum tempfile 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ada516e2350e8beaa84751caaced89916fdb3b78a36de0a23d3ad7859c66bb61"
+"checksum tenacious 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b945791c79c5a264f5e310f7c9660493976200a6e7789cef42a57dc11ddcc45b"
+"checksum tendril 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d2bcac1919ca8001a311df789ab4eba27f1e22eee9546c71bda2f701e089bb"
+"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
+"checksum thread_local 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0694f51610ef7cfac7a1b81de7f1602ee5356e76541bcd62c40e71933338cab1"
+"checksum threadpool 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8385be4e60ad9d6897ae06edff63449e9f9b213e31bdc653825d2a8294bd9c74"
+"checksum time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7ec6d62a20df54e07ab3b78b9a3932972f4b7981de295563686849eb3989af"
+"checksum tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)" = "<none>"
+"checksum traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "07eaeb7689bb7fca7ce15628319635758eda769fed481ecfe6686ddef2600616"
+"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
+"checksum unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "13a5906ca2b98c799f4b1ab4557b76367ebd6ae5ef14930ec841c74aed5f3764"
+"checksum unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c1f7ceb96afdfeedee42bade65a0d585a6a0106f681b6749c8ff4daa8df30b3f"
+"checksum unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "26643a2f83bac55f1976fb716c10234485f9202dcd65cfbdf9da49867b271172"
+"checksum unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5430ae21ef212551680d0021fc7dbd936e8b268c5ea8fdae8814e0b2496d80f"
+"checksum unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
+"checksum url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8ab4ca6f0107350f41a59a51cb0e71a04d905bc6a29181d2cb42fa4f040c65c9"
+"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47"
+"checksum utf-8 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9aee9ba280438b56d1ebc5329f2094f0ff457f811eeeff0b278d75aa99db400"
+"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
+"checksum uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a5efe91619a89528042b9b513ee41dc1ed06b35dc77b1e7a945a1caf580b863"
+"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+"checksum walkdir 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad450634b9022aeb0e8e7f1c79c1ded92d0fc5bee831033d148479771bd218d"
+"checksum wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ced3094c157b5cc0a08d40530e1a627d9f88b9a436971338d2646439128a559e"
+"checksum wayland-kbd 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "73bc10e84c1da90777beffecd24742baea17564ffc2a9918af41871c748eb050"
+"checksum wayland-scanner 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "5a1869370d6bafcbabae8724511d803f4e209a70e94ad94a4249269534364f66"
+"checksum wayland-sys 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9633f7fe5de56544215f82eaf1b76bf1b584becf7f08b58cbef4c2c7d10e803a"
+"checksum wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "309b69d3a863c9c21422d889fb7d98cf02f8a2ca054960a49243ce5b67ad884c"
+"checksum webdriver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3bb9a2d4c6f2e7dee80456f745250cfb8fca46e6510fd8c386cc49d046a5302"
+"checksum webrender 0.1.0 (git+https://github.com/servo/webrender)" = "<none>"
+"checksum webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)" = "<none>"
+"checksum websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a1a6ea5ed0367f32eb3d94dcc58859ef4294b5f75ba983dbf56ac314af45d"
+"checksum winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3969e500d618a5e974917ddefd0ba152e4bcaae5eb5d9b8c1fbc008e9e28c24e"
+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+"checksum x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7b42cf021c4b6a9481743b41553efc629839fcfab3e377a5dbcfc95dd3bebbc6"
+"checksum x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdad6e052965c2739d1544fd5def8db795f303dc670c970358a2d7fe268e8585"
+"checksum xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77b831a5ba77110f438f0ac5583aafeb087f70432998ba6b7dcb1d32185db453"
+"checksum xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "315c4e158d7fa277e3ea35b32e50bc07e9a0c8de9130a7cc4bdeab42ddc7b442"
+"checksum xml-rs 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "65e74b96bd3179209dc70a980da6df843dff09e46eee103a0376c0949257e3ef"
+"checksum xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fdbef89351fe48a35c50fc264fa10867a35912e9445753bdf21fbde4f4164af5"
diff --git a/mach b/mach
index 4fb1f0d62eb..4a8d7a349b0 100755
--- a/mach
+++ b/mach
@@ -12,10 +12,11 @@
from __future__ import print_function, unicode_literals
import os
+from os import path
import sys
def main(args):
- topdir = os.path.dirname(sys.argv[0])
+ topdir = path.abspath(path.dirname(sys.argv[0]))
sys.path.insert(0, os.path.join(topdir, "python"))
import mach_bootstrap
mach = mach_bootstrap.bootstrap(topdir)
diff --git a/mach.bat b/mach.bat
new file mode 100644
index 00000000000..d98f7953934
--- /dev/null
+++ b/mach.bat
@@ -0,0 +1,2 @@
+@echo off
+python mach %*
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index 5c572ad9ae0..fdf8e83b369 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -173,8 +173,8 @@ dependencies = [
[[package]]
name = "browserhtml"
-version = "0.1.15"
-source = "git+https://github.com/browserhtml/browserhtml?branch=crate#706302301a2800478239aef9688c2f087abf4e0b"
+version = "0.1.17"
+source = "git+https://github.com/browserhtml/browserhtml?branch=crate#82ab69c8a83a34c9f81adef57255557b1a52412f"
[[package]]
name = "byteorder"
@@ -593,10 +593,10 @@ dependencies = [
[[package]]
name = "expat-sys"
-version = "2.1.2"
+version = "2.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -685,7 +685,7 @@ dependencies = [
"fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.1.0 (git+https://github.com/servo/rust-freetype)",
"gfx_traits 0.0.1",
- "harfbuzz-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "harfbuzz-sys 0.1.6 (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)",
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -804,9 +804,10 @@ dependencies = [
[[package]]
name = "harfbuzz-sys"
-version = "0.1.5"
+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)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -991,8 +992,9 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.3"
-source = "git+https://github.com/servo/rust-mozjs#14e4556d7cd3dc4fd5eaf5e19e725a1325be14e6"
+source = "git+https://github.com/servo/rust-mozjs#755c8cc8cac7f6e51985c41507bac300d11e416e"
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)",
@@ -1175,7 +1177,7 @@ dependencies = [
[[package]]
name = "libz-sys"
-version = "1.0.4"
+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)",
@@ -1199,11 +1201,6 @@ version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
-name = "make-cmd"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
name = "malloc_buf"
version = "0.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1267,10 +1264,10 @@ dependencies = [
[[package]]
name = "mozjs_sys"
version = "0.0.0"
-source = "git+https://github.com/servo/mozjs#94eabc218780b696933122184e524bd35544c378"
+source = "git+https://github.com/servo/mozjs#0f2ea3416044656e09f107b8f9e0d169264a7c77"
dependencies = [
"libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "libz-sys 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libz-sys 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -1749,6 +1746,7 @@ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1",
"caseless 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1",
@@ -1926,7 +1924,7 @@ version = "0.0.1"
dependencies = [
"android_glue 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"backtrace 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "browserhtml 0.1.15 (git+https://github.com/browserhtml/browserhtml?branch=crate)",
+ "browserhtml 0.1.17 (git+https://github.com/browserhtml/browserhtml?branch=crate)",
"canvas 0.0.1",
"canvas_traits 0.0.1",
"compositing 0.0.1",
@@ -1983,7 +1981,7 @@ name = "servo-fontconfig-sys"
version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "expat-sys 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2034,7 +2032,7 @@ dependencies = [
"cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "expat-sys 2.1.2 (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.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2265,7 +2263,7 @@ name = "unicode-script"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "harfbuzz-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -2344,7 +2342,7 @@ dependencies = [
[[package]]
name = "video-metadata"
version = "0.1.3"
-source = "git+https://github.com/GuillaumeGomez/video-metadata-rs#44c8d547f9212be5d368a38d9f1238d85bc6728e"
+source = "git+https://github.com/GuillaumeGomez/video-metadata-rs#ca921f8529d4ed4b3e093fe30143b3fba08a7bf4"
dependencies = [
"gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2577,3 +2575,221 @@ dependencies = [
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
]
+[metadata]
+"checksum aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2b3fb52b09c1710b961acb35390d514be82e4ac96a9969a8e38565a29b878dc9"
+"checksum alloc-no-stdlib 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b21f6ad9c9957eb5d70c3dee16d31c092b3cab339628f821766b05e6833d72b8"
+"checksum android_glue 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f717214f8b7bac58e0fcfc2efcd716353b487a73f44935d7eab4e7b8f7d90778"
+"checksum angle 0.1.1 (git+https://github.com/servo/angle?branch=servo)" = "<none>"
+"checksum app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1634f9bb04d7ab8e763beb1d4be65464212f41d4c9da1ac41173fdb4c04cd26e"
+"checksum arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "16e3bdb2f54b3ace0285975d59a97cf8ed3855294b2b6bc651fcf22a9c352975"
+"checksum aster 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6583191799954e2f152217d98656c599b1a62456d88204dbfbcb212b43e3497"
+"checksum azure 0.4.7 (git+https://github.com/servo/rust-azure)" = "<none>"
+"checksum backtrace 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c6493ec8db942d97cec781f9fd090b0d5de4b47134cfbc31eea66d25496c3af8"
+"checksum backtrace-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ff73785ae8e06bb4a7b09e09f06d7434f9748b86d2f67bdf334b603354497e08"
+"checksum bincode 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa413a0580cf7d54f1938c13462fd32cff9099338bf161e15870cb05021df745"
+"checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c"
+"checksum bit-vec 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5b97c2c8e8bbb4251754f559df8af22fb264853c7d009084a576cdf12565089d"
+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+"checksum blurz 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a18fbcef6db7f58d135f77ad561e8f9b7fc809c91619c33422714cf5548004ed"
+"checksum brotli 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bff2d5511b5ba5840f46cc3f9c0c3ab09db20e9b9a4db344ef7df3fb547a627a"
+"checksum browserhtml 0.1.15 (git+https://github.com/browserhtml/browserhtml?branch=gh-pages)" = "<none>"
+"checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855"
+"checksum caseless 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b6893f86ac0c9275b5cbba9212ccd71020b447d4c3e2eebad70e1bc47fdd6dfb"
+"checksum cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de1e760d7b6535af4241fca8bd8adf68e2e7edacc6b29f5d399050c5e48cf88c"
+"checksum cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a88f6de807c90491d72a2951bf541bda481f5820cfe115fae431b8dd50d5160d"
+"checksum cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "dfcf5bcece56ef953b8ea042509e9dcbdfe97820b7e20d86beb53df30ed94978"
+"checksum cocoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b061f28efe5240041b29a5a2a6d350d014f26a7e256a17d897f6896b17ea91"
+"checksum color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a475fc4af42d83d28adf72968d9bcfaf035a1a9381642d8e85d8a04957767b0d"
+"checksum compiletest_rs 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "154a80a4eb92262d5f8ce48e301270e8f2a6943b817d8c519101fbd68c32ab1f"
+"checksum content-blocker 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8914f66cded7163409c6f95dae01867777d57af8467c3083b2570db6330c3831"
+"checksum cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e3d6405328b6edb412158b3b7710e2634e23f3614b9bb1c412df7952489a626"
+"checksum core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "20a6d0448d3a99d977ae4a2aa5a98d886a923e863e81ad9ff814645b6feb3bbd"
+"checksum core-foundation-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "05eed248dc504a5391c63794fe4fb64f46f071280afaa1b73308f3c0ce4574c5"
+"checksum core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0c56c6022ba22aedbaa7d231be545778becbe1c7aceda4c82ba2f2084dd4c723"
+"checksum core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "94d4f3fab9e0242a648728764ac50e322b61eeb28c2d26d483721fe392cb2878"
+"checksum crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "fb974f835e90390c5f9dfac00f05b06dc117299f5ea4e85fbc7bb443af4911cc"
+"checksum cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9b12b45a0985427aa2f6c629cc40756c7345819948436d9977f5a80b623a64c4"
+"checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"
+"checksum dbus 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aefec6d9031bc53358eb822549ca946f50c8618a85bfe8afa52816c3a978eecf"
+"checksum debug_unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a032eac705ca39214d169f83e3d3da290af06d8d1d344d1baad2fd002dca4b3"
+"checksum deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1614659040e711785ed8ea24219140654da1729f3ec8a47a9719d041112fe7bf"
+"checksum device 0.0.1 (git+https://github.com/servo/devices)" = "<none>"
+"checksum dlib 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8bd015f00d33d7e4ff66f1589fb824ccf3ccb10209b66c7b756f26ba9aa90215"
+"checksum dwmapi-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07c4c7cc7b396419bc0a4d90371d0cee16cb5053b53647d287c0b728000c41fe"
+"checksum dylib 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdff070fc467d71f23c5ac5ebfa0867e8f31146ef529b777723e8cba815e47ae"
+"checksum encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "1119ca1c88774efeed1a7926958e212e02af7437bdeab8520dbc7aa1abde3026"
+"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+"checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c"
+"checksum energymon 0.2.0 (git+https://github.com/energymon/energymon-rust.git)" = "<none>"
+"checksum energymon-builder 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum energymon-default-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum energymon-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79eff5be92a4d7d5bddf7daa7d650717ea71628634efe6ca7bcda85b2183c23"
+"checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb"
+"checksum euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "79b151a24962d2f15267afe1948e43c97cc330df55cf3414eb4d29e9498e23ad"
+"checksum expat-sys 2.1.3 (git+https://github.com/vvuk/libexpat.git?branch=msvcize)" = "<none>"
+"checksum expat-sys 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e7d69ae17563018c40eb8c2c2f0c7929cf1ab26490480f2823dff1edffb4d38e"
+"checksum flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "3eeb481e957304178d2e782f2da1257f1434dfecbae883bafb61ada2a9fea3bb"
+"checksum fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d3d4285d5aa1cf04504b7d8c2d1fdccf4586b56739499a04cc58663b2543cd30"
+"checksum freetype 0.1.0 (git+https://github.com/servo/rust-freetype)" = "<none>"
+"checksum fs2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "66fd7974e97e3c47dc89c146a05c6e8e90c4267daee9e75c229d4e049dce454d"
+"checksum futf 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7a9689380a2553b51c564b3d9178075c68ebd0b397972c783acfd28b46c28ad"
+"checksum gaol 0.0.1 (git+https://github.com/servo/gaol)" = "<none>"
+"checksum gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)" = "3da3a2cbaeb01363c8e3704fd9fd0eb2ceb17c6f27abd4c1ef040fb57d20dc79"
+"checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
+"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
+"checksum gif 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "01c7c19a035de94bd7afbaa62c241aadfbdf1a70f560b348d2312eafa566ca16"
+"checksum gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1d8edc81c5ae84605a62f5dac661a2313003b26d59839f81d47d46cf0f16a55"
+"checksum gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "13a363b2a5264b600e530db2f14b3c487098e6dee0655f2810ea779385cbac5a"
+"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
+"checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72"
+"checksum harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "16f772015f526a0cb0c642676cf696bcd2de35e4b91d016a8105755fec2bb373"
+"checksum heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "abb306abb8d398e053cfb1b3e7b72c2f580be048b85745c52652954f8ad1439c"
+"checksum heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6acc766436533f244943e2b33207436a1a0f354a2d1b90b1086669f5557ea851"
+"checksum heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78c0810722eacd0bdd3f1f691524bd9900bf8fed1947f6b883c10ddecd2560b1"
+"checksum heartbeats-simple-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3436e4747818db071e77851af361adb2fc36ef28723beae4fe3e5e5340804200"
+"checksum hpack 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d2da7d3a34cf6406d9d700111b8eafafe9a251de41ae71d8052748259343b58"
+"checksum html5ever 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fd04d31858b8fd8ac9d55570da8c822bc6defd2c1ac18a47cb70fc280f42b432"
+"checksum httparse 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "46534074dbb80b070d60a5cb8ecadd8963a00a438ae1a95268850a7ef73b67ae"
+"checksum hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "eb27e8a3e8f17ac43ffa41bbda9cf5ad3f9f13ef66fa4873409d4902310275f7"
+"checksum idna 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1053236e00ce4f668aeca4a769a09b3bf5a682d802abd6f3cb39374f6b162c11"
+"checksum image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7cd7efa3558b1acd537f2a6f9bcf15c4ae4842da38d2e2ea7c9ad023f36239b"
+"checksum immeta 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3e76ecb1d64979a91c7fc5b7c0495ef1467e3cbff759044f2b88878a5a845ef7"
+"checksum inflate 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
+"checksum io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "269269e9a441c883636513cbb0d2323c105d7c76a154899160140ad9c58a6eea"
+"checksum ipc-channel 0.4.0 (git+https://github.com/servo/ipc-channel)" = "<none>"
+"checksum jpeg-decoder 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b20f6cc8c490f3329fa799f227510085aab2a228bfcc49b1b173b14e0d790db7"
+"checksum js 0.1.3 (git+https://github.com/servo/rust-mozjs)" = "<none>"
+"checksum js 0.1.3 (git+https://github.com/vvuk/rust-mozjs.git?branch=rust-msvc)" = "<none>"
+"checksum kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b5e7edf375e6d26243bde172f1d5ed1446f4a766fc9b7006e1fd27258243f1"
+"checksum khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09c9d3760673c427d46f91a0350f0a84a52e6bc5a84adf26dc610b6c52436630"
+"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+"checksum layers 0.2.6 (git+https://github.com/servo/rust-layers)" = "<none>"
+"checksum lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "cf186d1a8aa5f5bee5fd662bc9c1b949e0259e1bcc379d1f006847b0080c7417"
+"checksum lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "49247ec2a285bb3dcb23cbd9c35193c025e7251bfce77c1d5da97e6362dffe7f"
+"checksum leak 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd100e01f1154f2908dfa7d02219aeab25d0b9c7fa955164192e3245255a0c73"
+"checksum leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40a8225d44241fd324a8af2806ba635fc7c8a7e9a7de4d5cf3ef54e71f5926fc"
+"checksum libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "d781ca9ed9bbe09595f6bbdeb9aeacb6b46154f1dd8c457a048d7d3c02561071"
+"checksum libloading 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dfa2c300418af0c8042e94f921274743fd05aa028bd365b42ce3469a6db15000"
+"checksum libressl-pnacl-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc058951ab6a3ef35ca16462d7642c4867e6403520811f28537a4e2f2db3e71"
+"checksum libz-sys 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c9795a8a0498b3abab873f8f063816fcc2e002388e89df87da065628dd5a8ed2"
+"checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054"
+"checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+"checksum mac 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1b1db08c0d0ddbb591e65f1da58d1cefccc94a2faa0c55bf979ce215a3e04d5e"
+"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+"checksum matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e"
+"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
+"checksum memmap 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f20f72ed93291a72e22e8b16bb18762183bb4943f0f483da5b8be1a9e8192752"
+"checksum mime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf93a79c700c9df8227ec6a4f0f27a8948373c079312bac24549d944cef85f64"
+"checksum mime_guess 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e9a7d89cb3bce9145b0d0339a0588b044e3e3e3faa1dcd74822ebdc36bfac020"
+"checksum miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d1f4d337a01c32e1f2122510fed46393d53ca35a7f429cb0450abaedfa3ed54"
+"checksum mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)" = "<none>"
+"checksum mozjs_sys 0.0.0 (git+https://github.com/vvuk/mozjs.git?branch=rust-msvc)" = "<none>"
+"checksum net2 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)" = "6a816012ca11cb47009693c1e0c6130e26d39e4d97ee2a13c50e868ec83e3204"
+"checksum nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4d9a22dbcebdeef7bf275cbf444d6521d4e7a2fee187b72d80dba0817120dd8f"
+"checksum num 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "c04bd954dbf96f76bab6e5bd6cef6f1ce1262d15268ce4f926d2b5b778fa7af2"
+"checksum num-bigint 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "41655c8d667be847a0b72fe0888857a7b3f052f691cf40852be5fcf87b274a65"
+"checksum num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "fb24d9bfb3f222010df27995441ded1e954f8f69cd35021f6bef02ca9552fb92"
+"checksum num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "287a1c9969a847055e1122ec0ea7a5c5d6f72aad97934e131c83d5c08ab4e45c"
+"checksum num-rational 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "48cdcc9ff4ae2a8296805ac15af88b3d88ce62128ded0cb74ffb63a587502a84"
+"checksum num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "51eab148f171aefad295f8cece636fc488b9b392ef544da31ea4b8ef6b9e9c39"
+"checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3"
+"checksum objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7c9311aa5acd7bee14476afa0f0557f564e9d0d61218a8b833d9b1f871fa5fba"
+"checksum odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b28c06e81b0f789122d415d6394b5fe849bde8067469f4c2980d3cdc10c78ec1"
+"checksum offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d854971e8569089b7f3a59fe77b2f2d63b848fdcbdb2ee5edcaf6f4b3efd7497"
+"checksum open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c228597177bc4a6876e278f7c7948ac033bfcb4d163ccdd5a009557c8fe5fa1e"
+"checksum openssl 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "c4117b6244aac42ed0150a6019b4d953d28247c5dd6ae6f46ae469b5f2318733"
+"checksum openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b8ac5e9d911dd4c3202bbf4139b73bc7a1231f7d0a39432c6f893745f0e04120"
+"checksum openssl-sys-extras 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "11c5e1dba7d3d03d80f045bf0d60111dc69213b67651e7c889527a3badabb9fa"
+"checksum openssl-verify 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ed86cce894f6b0ed4572e21eb34026f1dc8869cb9ee3869029131bc8c3feb2d"
+"checksum osmesa-sys 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e25c2d8d70fa255d45c280df2c6c22c89cca2b2bbb98a11f223d7cd5d5c5369d"
+"checksum phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "52c875926de24c01b5b69153eaa258b57920a39b44bbce8ef1f2052a6c5a6a1a"
+"checksum phf_codegen 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a8912c2cc0ea2e8ae70388ec0af9a445e7ab37b3c9cc61f059c2b34db8ed50b"
+"checksum phf_generator 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "04b5ea825e28cb6efd89d9133b129b2003b45a221aeda025509b125b00ecb7c4"
+"checksum phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "132ea70eed654520d98d0e54e262292a94bd5f150671d98b9c8d0782fafce37e"
+"checksum phf_shared 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2c43b5dbe94d31f1f4ed45c50bb06d70e72fd53f15422b0a915b5c237e130dd6"
+"checksum pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8cee804ecc7eaf201a4a207241472cc870e825206f6c031e3ee2a72fa425f2fa"
+"checksum pnacl-build-helper 1.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "61c9231d31aea845007443d62fcbb58bb6949ab9c18081ee1e09920e0cf1118b"
+"checksum png 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "38d3da7f9d4a160cf2caeaac01f71a0e6755712baa1b4ee157af2761c8fbdb8e"
+"checksum quasi 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "314e56e9e59af71a5b1f09fab15e8e66ab2ccb786688f8d2e04d98b8d7cbc161"
+"checksum quasi_codegen 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a3856abd5ec12f873eeac0837cce65ac33814ed4acba287a9e806620763d4b7"
+"checksum quasi_macros 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b530b7ff57b6a38e4d53909c64657f40e0eef6a8fea1f0943d76160c277c9c5"
+"checksum quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5950b7cb98904f6f7856bdff5b0987821f8a4ec4a67f4be892ddc8ed244ce89d"
+"checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5"
+"checksum rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e501871917624668fe601ad12a730450414f9b0b64722a898b040ce3ae1b0fa"
+"checksum ref_filter_map 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b5ceb840e4009da4841ed22a15eb49f64fdd00a2138945c5beacf506b2fb5ed"
+"checksum ref_slice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24c91f8f8903c37f0525112df98ef53b1985abca5702972e5e00854cd874baf2"
+"checksum regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)" = "e58a1b7d2bfecc0746e8587c30a53d01ea7bc0e98fac54e5aaa375b94338a0cc"
+"checksum regex-syntax 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "baa04823ba7be7ed0bed3d0704c7b923019d9c4e4931c5af2804c7c7a0e3d00b"
+"checksum rustc-demangle 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db0409577de8e3c214d35a81c4fd29bd07d445cb9151eacfcd588b2552c623d6"
+"checksum rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6159e4e6e559c81bd706afe9c8fd68f547d3e851ce12e76b1de7914bab61691b"
+"checksum rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084"
+"checksum scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef399c8893e8cb7aa9696e895427fab3a6bf265977bb96e126f24ddd2cda85a"
+"checksum selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a96b69bb9ea38d8dac49e26c8db1052847896009f7f6440c89e08e1b06483547"
+"checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
+"checksum serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0e0732aa8ec4267f61815a396a942ba3525062e3bd5520aa8419927cfc0a92"
+"checksum serde_codegen 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "973836af70870533bc6a332488ded6aef80a5ff507b663e8b4e1ef44580ea8fd"
+"checksum serde_codegen_internals 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eed6f11ba7400225025b44c77b4eca1655958aac6c586c5ec9c76fd5597ef849"
+"checksum serde_json 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c88a751caa8f0000058fb971cd443ed2e6b653f33f5a47f29892a8bd44ca4c1"
+"checksum serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "10aa279b5b061a3e827639cc15e563be096b7323c9c811e10a4b18ba4607eaf8"
+"checksum servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21069a884c33fe6ee596975e1f3849ed88c4ec857fbaf11d33672d8ebe051217"
+"checksum servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ab427a29b33b9b2f25f6c955d2c2f1bbd0d127fb7a936fa9090128c7638520f"
+"checksum servo-fontconfig-sys 2.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8a3cbabc5a1e8302caf38e91716e73024bc5989c9b3ca17b5f00f2ed53a57838"
+"checksum servo-freetype-sys 2.4.11 (git+https://github.com/vvuk/libfreetype2.git?branch=msvcize)" = "<none>"
+"checksum servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c9287d5d977ad911dc4def3b150feb4b662b21072a728c65adc7851dd7b0b28f"
+"checksum servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "6cbdd90c4b219101aca2328a508485c4a4623809886ae8df51ef07099b84da7a"
+"checksum servo-skia 0.20130412.12 (git+https://github.com/vvuk/skia.git?branch=msvcize)" = "<none>"
+"checksum servo-skia 0.20130412.12 (registry+https://github.com/rust-lang/crates.io-index)" = "964e66e672289d6f029822f2de8bce3b976a4c9f18c651ca3febad3020c80e39"
+"checksum shared_library 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e0979ddff251a81a12de16212ab8f5fac75a1c69b86a7c5809b7b610c350f049"
+"checksum shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f20b8f3c060374edb8046591ba28f62448c369ccbdc7b02075103fb3a9e38d"
+"checksum sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6649e43c1a1e68d29ed56d0dc3b5b6cf3b901da77cf107c4066b9e3da036df5"
+"checksum simd 0.1.0 (git+https://github.com/huonw/simd)" = "<none>"
+"checksum smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "fcc8d19212aacecf95e4a7a2179b26f7aeb9732a915cf01f05b0d3e044865410"
+"checksum solicit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "172382bac9424588d7840732b250faeeef88942e37b6e35317dce98cafdd75b2"
+"checksum string_cache 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "b0d1d74e1baf1502bc3084452d13e1f3b764e9555d90ce036c4b2b3be862c5d6"
+"checksum tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0b62933a3f96cd559700662c34f8bab881d9e3540289fb4f368419c7f13a5aa9"
+"checksum tempfile 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ada516e2350e8beaa84751caaced89916fdb3b78a36de0a23d3ad7859c66bb61"
+"checksum tenacious 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b945791c79c5a264f5e310f7c9660493976200a6e7789cef42a57dc11ddcc45b"
+"checksum tendril 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d2bcac1919ca8001a311df789ab4eba27f1e22eee9546c71bda2f701e089bb"
+"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
+"checksum thread_local 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0694f51610ef7cfac7a1b81de7f1602ee5356e76541bcd62c40e71933338cab1"
+"checksum threadpool 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8385be4e60ad9d6897ae06edff63449e9f9b213e31bdc653825d2a8294bd9c74"
+"checksum time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7ec6d62a20df54e07ab3b78b9a3932972f4b7981de295563686849eb3989af"
+"checksum tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)" = "<none>"
+"checksum traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "07eaeb7689bb7fca7ce15628319635758eda769fed481ecfe6686ddef2600616"
+"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
+"checksum unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "13a5906ca2b98c799f4b1ab4557b76367ebd6ae5ef14930ec841c74aed5f3764"
+"checksum unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c1f7ceb96afdfeedee42bade65a0d585a6a0106f681b6749c8ff4daa8df30b3f"
+"checksum unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "26643a2f83bac55f1976fb716c10234485f9202dcd65cfbdf9da49867b271172"
+"checksum unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5430ae21ef212551680d0021fc7dbd936e8b268c5ea8fdae8814e0b2496d80f"
+"checksum unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
+"checksum url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8ab4ca6f0107350f41a59a51cb0e71a04d905bc6a29181d2cb42fa4f040c65c9"
+"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47"
+"checksum utf-8 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9aee9ba280438b56d1ebc5329f2094f0ff457f811eeeff0b278d75aa99db400"
+"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
+"checksum uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a5efe91619a89528042b9b513ee41dc1ed06b35dc77b1e7a945a1caf580b863"
+"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+"checksum walkdir 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad450634b9022aeb0e8e7f1c79c1ded92d0fc5bee831033d148479771bd218d"
+"checksum wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ced3094c157b5cc0a08d40530e1a627d9f88b9a436971338d2646439128a559e"
+"checksum wayland-kbd 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "73bc10e84c1da90777beffecd24742baea17564ffc2a9918af41871c748eb050"
+"checksum wayland-scanner 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "5a1869370d6bafcbabae8724511d803f4e209a70e94ad94a4249269534364f66"
+"checksum wayland-sys 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9633f7fe5de56544215f82eaf1b76bf1b584becf7f08b58cbef4c2c7d10e803a"
+"checksum wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "309b69d3a863c9c21422d889fb7d98cf02f8a2ca054960a49243ce5b67ad884c"
+"checksum webdriver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3bb9a2d4c6f2e7dee80456f745250cfb8fca46e6510fd8c386cc49d046a5302"
+"checksum webrender 0.1.0 (git+https://github.com/servo/webrender)" = "<none>"
+"checksum webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)" = "<none>"
+"checksum websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a1a6ea5ed0367f32eb3d94dcc58859ef4294b5f75ba983dbf56ac314af45d"
+"checksum winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3969e500d618a5e974917ddefd0ba152e4bcaae5eb5d9b8c1fbc008e9e28c24e"
+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+"checksum x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7b42cf021c4b6a9481743b41553efc629839fcfab3e377a5dbcfc95dd3bebbc6"
+"checksum x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdad6e052965c2739d1544fd5def8db795f303dc670c970358a2d7fe268e8585"
+"checksum xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77b831a5ba77110f438f0ac5583aafeb087f70432998ba6b7dcb1d32185db453"
+"checksum xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "315c4e158d7fa277e3ea35b32e50bc07e9a0c8de9130a7cc4bdeab42ddc7b442"
+"checksum xml-rs 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "65e74b96bd3179209dc70a980da6df843dff09e46eee103a0376c0949257e3ef"
+"checksum xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fdbef89351fe48a35c50fc264fa10867a35912e9445753bdf21fbde4f4164af5"
diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock
index 571177b0e70..6fe7b41c55f 100644
--- a/ports/geckolib/Cargo.lock
+++ b/ports/geckolib/Cargo.lock
@@ -493,3 +493,221 @@ name = "xdg"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+[metadata]
+"checksum aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2b3fb52b09c1710b961acb35390d514be82e4ac96a9969a8e38565a29b878dc9"
+"checksum alloc-no-stdlib 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b21f6ad9c9957eb5d70c3dee16d31c092b3cab339628f821766b05e6833d72b8"
+"checksum android_glue 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f717214f8b7bac58e0fcfc2efcd716353b487a73f44935d7eab4e7b8f7d90778"
+"checksum angle 0.1.1 (git+https://github.com/servo/angle?branch=servo)" = "<none>"
+"checksum app_units 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1634f9bb04d7ab8e763beb1d4be65464212f41d4c9da1ac41173fdb4c04cd26e"
+"checksum arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "16e3bdb2f54b3ace0285975d59a97cf8ed3855294b2b6bc651fcf22a9c352975"
+"checksum aster 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6583191799954e2f152217d98656c599b1a62456d88204dbfbcb212b43e3497"
+"checksum azure 0.4.7 (git+https://github.com/servo/rust-azure)" = "<none>"
+"checksum backtrace 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c6493ec8db942d97cec781f9fd090b0d5de4b47134cfbc31eea66d25496c3af8"
+"checksum backtrace-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ff73785ae8e06bb4a7b09e09f06d7434f9748b86d2f67bdf334b603354497e08"
+"checksum bincode 0.5.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa413a0580cf7d54f1938c13462fd32cff9099338bf161e15870cb05021df745"
+"checksum bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c"
+"checksum bit-vec 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5b97c2c8e8bbb4251754f559df8af22fb264853c7d009084a576cdf12565089d"
+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+"checksum blurz 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a18fbcef6db7f58d135f77ad561e8f9b7fc809c91619c33422714cf5548004ed"
+"checksum brotli 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "bff2d5511b5ba5840f46cc3f9c0c3ab09db20e9b9a4db344ef7df3fb547a627a"
+"checksum browserhtml 0.1.15 (git+https://github.com/browserhtml/browserhtml?branch=gh-pages)" = "<none>"
+"checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855"
+"checksum caseless 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b6893f86ac0c9275b5cbba9212ccd71020b447d4c3e2eebad70e1bc47fdd6dfb"
+"checksum cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de1e760d7b6535af4241fca8bd8adf68e2e7edacc6b29f5d399050c5e48cf88c"
+"checksum cgl 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a88f6de807c90491d72a2951bf541bda481f5820cfe115fae431b8dd50d5160d"
+"checksum cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "dfcf5bcece56ef953b8ea042509e9dcbdfe97820b7e20d86beb53df30ed94978"
+"checksum cocoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b061f28efe5240041b29a5a2a6d350d014f26a7e256a17d897f6896b17ea91"
+"checksum color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a475fc4af42d83d28adf72968d9bcfaf035a1a9381642d8e85d8a04957767b0d"
+"checksum compiletest_rs 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "154a80a4eb92262d5f8ce48e301270e8f2a6943b817d8c519101fbd68c32ab1f"
+"checksum content-blocker 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8914f66cded7163409c6f95dae01867777d57af8467c3083b2570db6330c3831"
+"checksum cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e3d6405328b6edb412158b3b7710e2634e23f3614b9bb1c412df7952489a626"
+"checksum core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "20a6d0448d3a99d977ae4a2aa5a98d886a923e863e81ad9ff814645b6feb3bbd"
+"checksum core-foundation-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "05eed248dc504a5391c63794fe4fb64f46f071280afaa1b73308f3c0ce4574c5"
+"checksum core-graphics 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0c56c6022ba22aedbaa7d231be545778becbe1c7aceda4c82ba2f2084dd4c723"
+"checksum core-text 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "94d4f3fab9e0242a648728764ac50e322b61eeb28c2d26d483721fe392cb2878"
+"checksum crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "fb974f835e90390c5f9dfac00f05b06dc117299f5ea4e85fbc7bb443af4911cc"
+"checksum cssparser 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9b12b45a0985427aa2f6c629cc40756c7345819948436d9977f5a80b623a64c4"
+"checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"
+"checksum dbus 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aefec6d9031bc53358eb822549ca946f50c8618a85bfe8afa52816c3a978eecf"
+"checksum debug_unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a032eac705ca39214d169f83e3d3da290af06d8d1d344d1baad2fd002dca4b3"
+"checksum deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1614659040e711785ed8ea24219140654da1729f3ec8a47a9719d041112fe7bf"
+"checksum device 0.0.1 (git+https://github.com/servo/devices)" = "<none>"
+"checksum dlib 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8bd015f00d33d7e4ff66f1589fb824ccf3ccb10209b66c7b756f26ba9aa90215"
+"checksum dwmapi-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07c4c7cc7b396419bc0a4d90371d0cee16cb5053b53647d287c0b728000c41fe"
+"checksum dylib 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdff070fc467d71f23c5ac5ebfa0867e8f31146ef529b777723e8cba815e47ae"
+"checksum encoding 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)" = "1119ca1c88774efeed1a7926958e212e02af7437bdeab8520dbc7aa1abde3026"
+"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+"checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c"
+"checksum energymon 0.2.0 (git+https://github.com/energymon/energymon-rust.git)" = "<none>"
+"checksum energymon-builder 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum energymon-default-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum energymon-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>"
+"checksum enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79eff5be92a4d7d5bddf7daa7d650717ea71628634efe6ca7bcda85b2183c23"
+"checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb"
+"checksum euclid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "79b151a24962d2f15267afe1948e43c97cc330df55cf3414eb4d29e9498e23ad"
+"checksum expat-sys 2.1.3 (git+https://github.com/vvuk/libexpat.git?branch=msvcize)" = "<none>"
+"checksum expat-sys 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e7d69ae17563018c40eb8c2c2f0c7929cf1ab26490480f2823dff1edffb4d38e"
+"checksum flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "3eeb481e957304178d2e782f2da1257f1434dfecbae883bafb61ada2a9fea3bb"
+"checksum fnv 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d3d4285d5aa1cf04504b7d8c2d1fdccf4586b56739499a04cc58663b2543cd30"
+"checksum freetype 0.1.0 (git+https://github.com/servo/rust-freetype)" = "<none>"
+"checksum fs2 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "66fd7974e97e3c47dc89c146a05c6e8e90c4267daee9e75c229d4e049dce454d"
+"checksum futf 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7a9689380a2553b51c564b3d9178075c68ebd0b397972c783acfd28b46c28ad"
+"checksum gaol 0.0.1 (git+https://github.com/servo/gaol)" = "<none>"
+"checksum gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)" = "3da3a2cbaeb01363c8e3704fd9fd0eb2ceb17c6f27abd4c1ef040fb57d20dc79"
+"checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
+"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
+"checksum gif 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "01c7c19a035de94bd7afbaa62c241aadfbdf1a70f560b348d2312eafa566ca16"
+"checksum gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1d8edc81c5ae84605a62f5dac661a2313003b26d59839f81d47d46cf0f16a55"
+"checksum gleam 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "13a363b2a5264b600e530db2f14b3c487098e6dee0655f2810ea779385cbac5a"
+"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
+"checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72"
+"checksum harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "16f772015f526a0cb0c642676cf696bcd2de35e4b91d016a8105755fec2bb373"
+"checksum heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "abb306abb8d398e053cfb1b3e7b72c2f580be048b85745c52652954f8ad1439c"
+"checksum heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6acc766436533f244943e2b33207436a1a0f354a2d1b90b1086669f5557ea851"
+"checksum heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78c0810722eacd0bdd3f1f691524bd9900bf8fed1947f6b883c10ddecd2560b1"
+"checksum heartbeats-simple-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3436e4747818db071e77851af361adb2fc36ef28723beae4fe3e5e5340804200"
+"checksum hpack 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d2da7d3a34cf6406d9d700111b8eafafe9a251de41ae71d8052748259343b58"
+"checksum html5ever 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fd04d31858b8fd8ac9d55570da8c822bc6defd2c1ac18a47cb70fc280f42b432"
+"checksum httparse 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "46534074dbb80b070d60a5cb8ecadd8963a00a438ae1a95268850a7ef73b67ae"
+"checksum hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "eb27e8a3e8f17ac43ffa41bbda9cf5ad3f9f13ef66fa4873409d4902310275f7"
+"checksum idna 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1053236e00ce4f668aeca4a769a09b3bf5a682d802abd6f3cb39374f6b162c11"
+"checksum image 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7cd7efa3558b1acd537f2a6f9bcf15c4ae4842da38d2e2ea7c9ad023f36239b"
+"checksum immeta 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3e76ecb1d64979a91c7fc5b7c0495ef1467e3cbff759044f2b88878a5a845ef7"
+"checksum inflate 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
+"checksum io-surface 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "269269e9a441c883636513cbb0d2323c105d7c76a154899160140ad9c58a6eea"
+"checksum ipc-channel 0.4.0 (git+https://github.com/servo/ipc-channel)" = "<none>"
+"checksum jpeg-decoder 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b20f6cc8c490f3329fa799f227510085aab2a228bfcc49b1b173b14e0d790db7"
+"checksum js 0.1.3 (git+https://github.com/servo/rust-mozjs)" = "<none>"
+"checksum js 0.1.3 (git+https://github.com/vvuk/rust-mozjs.git?branch=rust-msvc)" = "<none>"
+"checksum kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b5e7edf375e6d26243bde172f1d5ed1446f4a766fc9b7006e1fd27258243f1"
+"checksum khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09c9d3760673c427d46f91a0350f0a84a52e6bc5a84adf26dc610b6c52436630"
+"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+"checksum layers 0.2.6 (git+https://github.com/servo/rust-layers)" = "<none>"
+"checksum lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "cf186d1a8aa5f5bee5fd662bc9c1b949e0259e1bcc379d1f006847b0080c7417"
+"checksum lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "49247ec2a285bb3dcb23cbd9c35193c025e7251bfce77c1d5da97e6362dffe7f"
+"checksum leak 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd100e01f1154f2908dfa7d02219aeab25d0b9c7fa955164192e3245255a0c73"
+"checksum leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40a8225d44241fd324a8af2806ba635fc7c8a7e9a7de4d5cf3ef54e71f5926fc"
+"checksum libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "d781ca9ed9bbe09595f6bbdeb9aeacb6b46154f1dd8c457a048d7d3c02561071"
+"checksum libloading 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dfa2c300418af0c8042e94f921274743fd05aa028bd365b42ce3469a6db15000"
+"checksum libressl-pnacl-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc058951ab6a3ef35ca16462d7642c4867e6403520811f28537a4e2f2db3e71"
+"checksum libz-sys 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c9795a8a0498b3abab873f8f063816fcc2e002388e89df87da065628dd5a8ed2"
+"checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054"
+"checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+"checksum mac 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1b1db08c0d0ddbb591e65f1da58d1cefccc94a2faa0c55bf979ce215a3e04d5e"
+"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+"checksum matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e"
+"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
+"checksum memmap 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f20f72ed93291a72e22e8b16bb18762183bb4943f0f483da5b8be1a9e8192752"
+"checksum mime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf93a79c700c9df8227ec6a4f0f27a8948373c079312bac24549d944cef85f64"
+"checksum mime_guess 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e9a7d89cb3bce9145b0d0339a0588b044e3e3e3faa1dcd74822ebdc36bfac020"
+"checksum miniz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d1f4d337a01c32e1f2122510fed46393d53ca35a7f429cb0450abaedfa3ed54"
+"checksum mozjs_sys 0.0.0 (git+https://github.com/servo/mozjs)" = "<none>"
+"checksum mozjs_sys 0.0.0 (git+https://github.com/vvuk/mozjs.git?branch=rust-msvc)" = "<none>"
+"checksum net2 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)" = "6a816012ca11cb47009693c1e0c6130e26d39e4d97ee2a13c50e868ec83e3204"
+"checksum nodrop 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4d9a22dbcebdeef7bf275cbf444d6521d4e7a2fee187b72d80dba0817120dd8f"
+"checksum num 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "c04bd954dbf96f76bab6e5bd6cef6f1ce1262d15268ce4f926d2b5b778fa7af2"
+"checksum num-bigint 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "41655c8d667be847a0b72fe0888857a7b3f052f691cf40852be5fcf87b274a65"
+"checksum num-integer 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "fb24d9bfb3f222010df27995441ded1e954f8f69cd35021f6bef02ca9552fb92"
+"checksum num-iter 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "287a1c9969a847055e1122ec0ea7a5c5d6f72aad97934e131c83d5c08ab4e45c"
+"checksum num-rational 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "48cdcc9ff4ae2a8296805ac15af88b3d88ce62128ded0cb74ffb63a587502a84"
+"checksum num-traits 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "51eab148f171aefad295f8cece636fc488b9b392ef544da31ea4b8ef6b9e9c39"
+"checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3"
+"checksum objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7c9311aa5acd7bee14476afa0f0557f564e9d0d61218a8b833d9b1f871fa5fba"
+"checksum odds 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b28c06e81b0f789122d415d6394b5fe849bde8067469f4c2980d3cdc10c78ec1"
+"checksum offscreen_gl_context 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d854971e8569089b7f3a59fe77b2f2d63b848fdcbdb2ee5edcaf6f4b3efd7497"
+"checksum open 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c228597177bc4a6876e278f7c7948ac033bfcb4d163ccdd5a009557c8fe5fa1e"
+"checksum openssl 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "c4117b6244aac42ed0150a6019b4d953d28247c5dd6ae6f46ae469b5f2318733"
+"checksum openssl-sys 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "b8ac5e9d911dd4c3202bbf4139b73bc7a1231f7d0a39432c6f893745f0e04120"
+"checksum openssl-sys-extras 0.7.14 (registry+https://github.com/rust-lang/crates.io-index)" = "11c5e1dba7d3d03d80f045bf0d60111dc69213b67651e7c889527a3badabb9fa"
+"checksum openssl-verify 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ed86cce894f6b0ed4572e21eb34026f1dc8869cb9ee3869029131bc8c3feb2d"
+"checksum osmesa-sys 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e25c2d8d70fa255d45c280df2c6c22c89cca2b2bbb98a11f223d7cd5d5c5369d"
+"checksum phf 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "52c875926de24c01b5b69153eaa258b57920a39b44bbce8ef1f2052a6c5a6a1a"
+"checksum phf_codegen 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a8912c2cc0ea2e8ae70388ec0af9a445e7ab37b3c9cc61f059c2b34db8ed50b"
+"checksum phf_generator 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "04b5ea825e28cb6efd89d9133b129b2003b45a221aeda025509b125b00ecb7c4"
+"checksum phf_macros 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "132ea70eed654520d98d0e54e262292a94bd5f150671d98b9c8d0782fafce37e"
+"checksum phf_shared 0.7.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2c43b5dbe94d31f1f4ed45c50bb06d70e72fd53f15422b0a915b5c237e130dd6"
+"checksum pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8cee804ecc7eaf201a4a207241472cc870e825206f6c031e3ee2a72fa425f2fa"
+"checksum pnacl-build-helper 1.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "61c9231d31aea845007443d62fcbb58bb6949ab9c18081ee1e09920e0cf1118b"
+"checksum png 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "38d3da7f9d4a160cf2caeaac01f71a0e6755712baa1b4ee157af2761c8fbdb8e"
+"checksum quasi 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "314e56e9e59af71a5b1f09fab15e8e66ab2ccb786688f8d2e04d98b8d7cbc161"
+"checksum quasi_codegen 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a3856abd5ec12f873eeac0837cce65ac33814ed4acba287a9e806620763d4b7"
+"checksum quasi_macros 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b530b7ff57b6a38e4d53909c64657f40e0eef6a8fea1f0943d76160c277c9c5"
+"checksum quickersort 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5950b7cb98904f6f7856bdff5b0987821f8a4ec4a67f4be892ddc8ed244ce89d"
+"checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5"
+"checksum rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e501871917624668fe601ad12a730450414f9b0b64722a898b040ce3ae1b0fa"
+"checksum ref_filter_map 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b5ceb840e4009da4841ed22a15eb49f64fdd00a2138945c5beacf506b2fb5ed"
+"checksum ref_slice 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24c91f8f8903c37f0525112df98ef53b1985abca5702972e5e00854cd874baf2"
+"checksum regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)" = "e58a1b7d2bfecc0746e8587c30a53d01ea7bc0e98fac54e5aaa375b94338a0cc"
+"checksum regex-syntax 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "baa04823ba7be7ed0bed3d0704c7b923019d9c4e4931c5af2804c7c7a0e3d00b"
+"checksum rustc-demangle 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db0409577de8e3c214d35a81c4fd29bd07d445cb9151eacfcd588b2552c623d6"
+"checksum rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6159e4e6e559c81bd706afe9c8fd68f547d3e851ce12e76b1de7914bab61691b"
+"checksum rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084"
+"checksum scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef399c8893e8cb7aa9696e895427fab3a6bf265977bb96e126f24ddd2cda85a"
+"checksum selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a96b69bb9ea38d8dac49e26c8db1052847896009f7f6440c89e08e1b06483547"
+"checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
+"checksum serde 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0e0732aa8ec4267f61815a396a942ba3525062e3bd5520aa8419927cfc0a92"
+"checksum serde_codegen 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "973836af70870533bc6a332488ded6aef80a5ff507b663e8b4e1ef44580ea8fd"
+"checksum serde_codegen_internals 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eed6f11ba7400225025b44c77b4eca1655958aac6c586c5ec9c76fd5597ef849"
+"checksum serde_json 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c88a751caa8f0000058fb971cd443ed2e6b653f33f5a47f29892a8bd44ca4c1"
+"checksum serde_macros 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "10aa279b5b061a3e827639cc15e563be096b7323c9c811e10a4b18ba4607eaf8"
+"checksum servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21069a884c33fe6ee596975e1f3849ed88c4ec857fbaf11d33672d8ebe051217"
+"checksum servo-fontconfig 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ab427a29b33b9b2f25f6c955d2c2f1bbd0d127fb7a936fa9090128c7638520f"
+"checksum servo-fontconfig-sys 2.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8a3cbabc5a1e8302caf38e91716e73024bc5989c9b3ca17b5f00f2ed53a57838"
+"checksum servo-freetype-sys 2.4.11 (git+https://github.com/vvuk/libfreetype2.git?branch=msvcize)" = "<none>"
+"checksum servo-freetype-sys 2.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c9287d5d977ad911dc4def3b150feb4b662b21072a728c65adc7851dd7b0b28f"
+"checksum servo-glutin 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "6cbdd90c4b219101aca2328a508485c4a4623809886ae8df51ef07099b84da7a"
+"checksum servo-skia 0.20130412.12 (git+https://github.com/vvuk/skia.git?branch=msvcize)" = "<none>"
+"checksum servo-skia 0.20130412.12 (registry+https://github.com/rust-lang/crates.io-index)" = "964e66e672289d6f029822f2de8bce3b976a4c9f18c651ca3febad3020c80e39"
+"checksum shared_library 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e0979ddff251a81a12de16212ab8f5fac75a1c69b86a7c5809b7b610c350f049"
+"checksum shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f20b8f3c060374edb8046591ba28f62448c369ccbdc7b02075103fb3a9e38d"
+"checksum sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6649e43c1a1e68d29ed56d0dc3b5b6cf3b901da77cf107c4066b9e3da036df5"
+"checksum simd 0.1.0 (git+https://github.com/huonw/simd)" = "<none>"
+"checksum smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "fcc8d19212aacecf95e4a7a2179b26f7aeb9732a915cf01f05b0d3e044865410"
+"checksum solicit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "172382bac9424588d7840732b250faeeef88942e37b6e35317dce98cafdd75b2"
+"checksum string_cache 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "b0d1d74e1baf1502bc3084452d13e1f3b764e9555d90ce036c4b2b3be862c5d6"
+"checksum tempdir 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0b62933a3f96cd559700662c34f8bab881d9e3540289fb4f368419c7f13a5aa9"
+"checksum tempfile 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ada516e2350e8beaa84751caaced89916fdb3b78a36de0a23d3ad7859c66bb61"
+"checksum tenacious 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b945791c79c5a264f5e310f7c9660493976200a6e7789cef42a57dc11ddcc45b"
+"checksum tendril 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d2bcac1919ca8001a311df789ab4eba27f1e22eee9546c71bda2f701e089bb"
+"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
+"checksum thread_local 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0694f51610ef7cfac7a1b81de7f1602ee5356e76541bcd62c40e71933338cab1"
+"checksum threadpool 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8385be4e60ad9d6897ae06edff63449e9f9b213e31bdc653825d2a8294bd9c74"
+"checksum time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7ec6d62a20df54e07ab3b78b9a3932972f4b7981de295563686849eb3989af"
+"checksum tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)" = "<none>"
+"checksum traitobject 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "07eaeb7689bb7fca7ce15628319635758eda769fed481ecfe6686ddef2600616"
+"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
+"checksum unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "13a5906ca2b98c799f4b1ab4557b76367ebd6ae5ef14930ec841c74aed5f3764"
+"checksum unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c1f7ceb96afdfeedee42bade65a0d585a6a0106f681b6749c8ff4daa8df30b3f"
+"checksum unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "26643a2f83bac55f1976fb716c10234485f9202dcd65cfbdf9da49867b271172"
+"checksum unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e5430ae21ef212551680d0021fc7dbd936e8b268c5ea8fdae8814e0b2496d80f"
+"checksum unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
+"checksum url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8ab4ca6f0107350f41a59a51cb0e71a04d905bc6a29181d2cb42fa4f040c65c9"
+"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47"
+"checksum utf-8 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9aee9ba280438b56d1ebc5329f2094f0ff457f811eeeff0b278d75aa99db400"
+"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
+"checksum uuid 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a5efe91619a89528042b9b513ee41dc1ed06b35dc77b1e7a945a1caf580b863"
+"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+"checksum walkdir 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad450634b9022aeb0e8e7f1c79c1ded92d0fc5bee831033d148479771bd218d"
+"checksum wayland-client 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ced3094c157b5cc0a08d40530e1a627d9f88b9a436971338d2646439128a559e"
+"checksum wayland-kbd 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "73bc10e84c1da90777beffecd24742baea17564ffc2a9918af41871c748eb050"
+"checksum wayland-scanner 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "5a1869370d6bafcbabae8724511d803f4e209a70e94ad94a4249269534364f66"
+"checksum wayland-sys 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9633f7fe5de56544215f82eaf1b76bf1b584becf7f08b58cbef4c2c7d10e803a"
+"checksum wayland-window 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "309b69d3a863c9c21422d889fb7d98cf02f8a2ca054960a49243ce5b67ad884c"
+"checksum webdriver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3bb9a2d4c6f2e7dee80456f745250cfb8fca46e6510fd8c386cc49d046a5302"
+"checksum webrender 0.1.0 (git+https://github.com/servo/webrender)" = "<none>"
+"checksum webrender_traits 0.2.0 (git+https://github.com/servo/webrender_traits)" = "<none>"
+"checksum websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a1a6ea5ed0367f32eb3d94dcc58859ef4294b5f75ba983dbf56ac314af45d"
+"checksum winapi 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3969e500d618a5e974917ddefd0ba152e4bcaae5eb5d9b8c1fbc008e9e28c24e"
+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+"checksum x11 2.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7b42cf021c4b6a9481743b41553efc629839fcfab3e377a5dbcfc95dd3bebbc6"
+"checksum x11-dl 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdad6e052965c2739d1544fd5def8db795f303dc670c970358a2d7fe268e8585"
+"checksum xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77b831a5ba77110f438f0ac5583aafeb087f70432998ba6b7dcb1d32185db453"
+"checksum xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "315c4e158d7fa277e3ea35b32e50bc07e9a0c8de9130a7cc4bdeab42ddc7b442"
+"checksum xml-rs 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "65e74b96bd3179209dc70a980da6df843dff09e46eee103a0376c0949257e3ef"
+"checksum xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fdbef89351fe48a35c50fc264fa10867a35912e9445753bdf21fbde4f4164af5"
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index 275b2309f2e..708640208b8 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -23,7 +23,7 @@ from mach.decorators import (
Command,
)
-from servo.command_base import CommandBase, cd, call, BIN_SUFFIX
+from servo.command_base import CommandBase, cd, call, BIN_SUFFIX, host_triple
def format_duration(seconds):
@@ -42,26 +42,31 @@ def notify_linux(title, text):
def notify_win(title, text):
- from ctypes import Structure, windll, POINTER, sizeof
- from ctypes.wintypes import DWORD, HANDLE, WINFUNCTYPE, BOOL, UINT
+ try:
+ from servo.win32_toast import WindowsToast
+ w = WindowsToast()
+ w.balloon_tip(title, text)
+ except:
+ from ctypes import Structure, windll, POINTER, sizeof
+ from ctypes.wintypes import DWORD, HANDLE, WINFUNCTYPE, BOOL, UINT
- class FLASHWINDOW(Structure):
- _fields_ = [("cbSize", UINT),
- ("hwnd", HANDLE),
- ("dwFlags", DWORD),
- ("uCount", UINT),
- ("dwTimeout", DWORD)]
+ class FLASHWINDOW(Structure):
+ _fields_ = [("cbSize", UINT),
+ ("hwnd", HANDLE),
+ ("dwFlags", DWORD),
+ ("uCount", UINT),
+ ("dwTimeout", DWORD)]
- FlashWindowExProto = WINFUNCTYPE(BOOL, POINTER(FLASHWINDOW))
- FlashWindowEx = FlashWindowExProto(("FlashWindowEx", windll.user32))
- FLASHW_CAPTION = 0x01
- FLASHW_TRAY = 0x02
- FLASHW_TIMERNOFG = 0x0C
+ FlashWindowExProto = WINFUNCTYPE(BOOL, POINTER(FLASHWINDOW))
+ FlashWindowEx = FlashWindowExProto(("FlashWindowEx", windll.user32))
+ FLASHW_CAPTION = 0x01
+ FLASHW_TRAY = 0x02
+ FLASHW_TIMERNOFG = 0x0C
- params = FLASHWINDOW(sizeof(FLASHWINDOW),
- windll.kernel32.GetConsoleWindow(),
- FLASHW_CAPTION | FLASHW_TRAY | FLASHW_TIMERNOFG, 3, 0)
- FlashWindowEx(params)
+ params = FLASHWINDOW(sizeof(FLASHWINDOW),
+ windll.kernel32.GetConsoleWindow(),
+ FLASHW_CAPTION | FLASHW_TRAY | FLASHW_TIMERNOFG, 3, 0)
+ FlashWindowEx(params)
def notify_darwin(title, text):
@@ -86,11 +91,11 @@ def notify_darwin(title, text):
raise Exception("Optional Python module 'pyobjc' is not installed.")
-def notify_build_done(elapsed):
+def notify_build_done(elapsed, success=True):
"""Generate desktop notification when build is complete and the
elapsed build time was longer than 30 seconds."""
if elapsed > 30:
- notify("Servo build", "Completed in %s" % format_duration(elapsed))
+ notify("Servo build", "%s in %s" % ("Completed" if success else "FAILED", format_duration(elapsed)))
def notify(title, text):
@@ -100,7 +105,7 @@ def notify(title, text):
platforms = {
"linux": notify_linux,
"linux2": notify_linux,
- "win": notify_win,
+ "win32": notify_win,
"darwin": notify_darwin
}
func = platforms.get(sys.platform)
@@ -236,36 +241,52 @@ class MachCommands(CommandBase):
cargo_binary = "cargo" + BIN_SUFFIX
- if sys.platform == "win32" or sys.platform == "msys":
- env["RUSTFLAGS"] = "-C link-args=-Wl,--subsystem,windows"
+ if sys.platform in ("win32", "msys"):
+ if "msvc" not in host_triple():
+ env[b'RUSTFLAGS'] = b'-C link-args=-Wl,--subsystem,windows'
status = call(
[cargo_binary, "build"] + opts,
env=env, cwd=self.servo_crate(), verbose=verbose)
elapsed = time() - build_start
- if sys.platform == "win32" or sys.platform == "msys":
- shutil.copy(path.join(self.get_top_dir(), "components", "servo", "servo.exe.manifest"),
- path.join(base_path, "debug" if dev else "release"))
-
- # On the Mac, set a lovely icon. This makes it easier to pick out the Servo binary in tools
- # like Instruments.app.
- if sys.platform == "darwin":
- try:
- import Cocoa
- icon_path = path.join(self.get_top_dir(), "resources", "servo.png")
- icon = Cocoa.NSImage.alloc().initWithContentsOfFile_(icon_path)
- if icon is not None:
- Cocoa.NSWorkspace.sharedWorkspace().setIcon_forFile_options_(icon,
- servo_path,
- 0)
- except ImportError:
- pass
+ # Do some additional things if the build succeeded
+ if status == 0:
+ if sys.platform in ("win32", "msys"):
+ servo_exe_dir = path.join(base_path, "debug" if dev else "release")
+ # On windows, copy in our manifest
+ shutil.copy(path.join(self.get_top_dir(), "components", "servo", "servo.exe.manifest"),
+ servo_exe_dir)
+ if "msvc" in host_triple():
+ # on msvc builds, use editbin to change the subsystem to windows
+ call(["editbin", "/nologo", "/subsystem:windows", path.join(servo_exe_dir, "servo.exe")],
+ verbose=verbose)
+ # on msvc, we need to copy in some DLLs in to the servo.exe dir
+ for ssl_lib in ["ssleay32md.dll", "libeay32md.dll"]:
+ shutil.copy(path.join(os.getenv('OPENSSL_LIB_DIR'), "../bin64", ssl_lib),
+ servo_exe_dir)
+ for ffmpeg_lib in ["avutil-55.dll", "avformat-57.dll", "avcodec-57.dll", "swresample-2.dll"]:
+ shutil.copy(path.join(os.getenv('FFMPEG_LIB_DIR'), "../bin", ffmpeg_lib),
+ servo_exe_dir)
+
+ elif sys.platform == "darwin":
+ # On the Mac, set a lovely icon. This makes it easier to pick out the Servo binary in tools
+ # like Instruments.app.
+ try:
+ import Cocoa
+ icon_path = path.join(self.get_top_dir(), "resources", "servo.png")
+ icon = Cocoa.NSImage.alloc().initWithContentsOfFile_(icon_path)
+ if icon is not None:
+ Cocoa.NSWorkspace.sharedWorkspace().setIcon_forFile_options_(icon,
+ servo_path,
+ 0)
+ except ImportError:
+ pass
# Generate Desktop Notification if elapsed-time > some threshold value
- notify_build_done(elapsed)
+ notify_build_done(elapsed, status == 0)
- print("Build completed in %s" % format_duration(elapsed))
+ print("Build %s in %s" % ("Completed" if status == 0 else "FAILED", format_duration(elapsed)))
return status
@Command('build-cef',
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index 99dc78235ed..556f1e14e59 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -116,16 +116,6 @@ def host_triple():
return "%s-%s" % (cpu_type, os_type)
-def call(*args, **kwargs):
- """Wrap `subprocess.call`, printing the command if verbose=True."""
- verbose = kwargs.pop('verbose', False)
- if verbose:
- print(' '.join(args[0]))
- # we have to use shell=True in order to get PATH handling
- # when looking for the binary on Windows
- return subprocess.call(*args, shell=sys.platform == 'win32', **kwargs)
-
-
def normalize_env(env):
# There is a bug in subprocess where it doesn't like unicode types in
# environment variables. Here, ensure all unicode are converted to
@@ -144,6 +134,18 @@ def normalize_env(env):
return normalized_env
+def call(*args, **kwargs):
+ """Wrap `subprocess.call`, printing the command if verbose=True."""
+ verbose = kwargs.pop('verbose', False)
+ if verbose:
+ print(' '.join(args[0]))
+ if 'env' in kwargs:
+ kwargs['env'] = normalize_env(kwargs['env'])
+ # we have to use shell=True in order to get PATH handling
+ # when looking for the binary on Windows
+ return subprocess.call(*args, shell=sys.platform == 'win32', **kwargs)
+
+
def check_call(*args, **kwargs):
"""Wrap `subprocess.check_call`, printing the command if verbose=True.
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 5eaad0ba7b9..ffc2dd3869e 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -25,7 +25,7 @@ from mach.decorators import (
Command,
)
-from servo.command_base import CommandBase, call, check_call
+from servo.command_base import CommandBase, call, check_call, host_triple
from wptrunner import wptcommandline
from update import updatecommandline
from servo_tidy import tidy
@@ -220,8 +220,13 @@ class MachCommands(CommandBase):
env = self.build_env()
env["RUST_BACKTRACE"] = "1"
- if sys.platform == "win32" or sys.platform == "msys":
- env["RUSTFLAGS"] = "-C link-args=-Wl,--subsystem,windows"
+ if sys.platform in ("win32", "msys"):
+ if "msvc" in host_triple():
+ # on MSVC, we need some DLLs in the path. They were copied
+ # in to the servo.exe build dir, so just point PATH to that.
+ env["PATH"] = "%s%s%s" % (path.dirname(self.get_binary_path(False, False)), os.pathsep, env["PATH"])
+ else:
+ env["RUSTFLAGS"] = "-C link-args=-Wl,--subsystem,windows"
result = call(args, env=env, cwd=self.servo_crate())
if result != 0:
diff --git a/python/servo/win32_toast.py b/python/servo/win32_toast.py
new file mode 100644
index 00000000000..22a7ccd917f
--- /dev/null
+++ b/python/servo/win32_toast.py
@@ -0,0 +1,45 @@
+# Copyright 2013 The Servo Project Developers. See the COPYRIGHT
+# file at the top-level directory of this distribution.
+#
+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+# option. This file may not be copied, modified, or distributed
+# except according to those terms.
+
+from win32api import GetModuleHandle
+from win32gui import WNDCLASS, RegisterClass, CreateWindow, UpdateWindow
+from win32gui import DestroyWindow, LoadIcon, NIF_ICON, NIF_MESSAGE, NIF_TIP
+from win32gui import Shell_NotifyIcon, NIM_ADD, NIM_MODIFY, NIF_INFO, NIIF_INFO
+import win32con
+
+
+class WindowsToast:
+ def __init__(self):
+ # Register window class; it's okay to do this multiple times
+ wc = WNDCLASS()
+ wc.lpszClassName = 'ServoTaskbarNotification'
+ wc.lpfnWndProc = {win32con.WM_DESTROY: self.OnDestroy, }
+ self.classAtom = RegisterClass(wc)
+ self.hinst = wc.hInstance = GetModuleHandle(None)
+
+ def OnDestroy(self, hwnd, msg, wparam, lparam):
+ # We don't have to Shell_NotifyIcon to delete it, since
+ # we destroyed
+ pass
+
+ def balloon_tip(self, title, msg):
+ style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
+ hwnd = CreateWindow(self.classAtom, "Taskbar", style, 0, 0,
+ win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
+ 0, 0, self.hinst, None)
+ UpdateWindow(hwnd)
+
+ hicon = LoadIcon(0, win32con.IDI_APPLICATION)
+
+ nid = (hwnd, 0, NIF_ICON | NIF_MESSAGE | NIF_TIP, win32con.WM_USER + 20, hicon, 'Tooltip')
+ Shell_NotifyIcon(NIM_ADD, nid)
+ nid = (hwnd, 0, NIF_INFO, win32con.WM_USER + 20, hicon, 'Balloon Tooltip', msg, 200, title, NIIF_INFO)
+ Shell_NotifyIcon(NIM_MODIFY, nid)
+
+ DestroyWindow(hwnd)
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py
index d6d6344db54..f4b893bda8c 100644
--- a/python/tidy/servo_tidy/tidy.py
+++ b/python/tidy/servo_tidy/tidy.py
@@ -202,8 +202,9 @@ def check_modeline(file_name, lines):
def check_length(file_name, idx, line):
- if file_name.endswith(".lock") or file_name.endswith(".json") or file_name.endswith(".html"):
- raise StopIteration
+ for suffix in [".lock", ".json", ".html", ".toml"]:
+ if file_name.endswith(suffix):
+ raise StopIteration
# Prefer shorter lines when shell scripting.
if file_name.endswith(".sh"):
max_length = 80
@@ -297,8 +298,18 @@ def check_lock(file_name, contents):
# package names to be neglected (as named by cargo)
exceptions = ["lazy_static"]
- import toml
- content = toml.loads(contents)
+ # toml.py has a bug(?) that we trip up in [metadata] sections;
+ # see https://github.com/uiri/toml/issues/61
+ # This should only affect a very few lines (that have embedded ?branch=...),
+ # and most of them won't be in the repo
+ try:
+ import toml
+ content = toml.loads(contents)
+ except:
+ print "WARNING!"
+ print "WARNING! toml parsing failed for Cargo.lock, but ignoring..."
+ print "WARNING!"
+ raise StopIteration
packages = {}
for package in content.get("package", []):