diff --git a/Cargo.lock b/Cargo.lock index 8c7c0b0ad2a..cb5c8464d52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,7 +138,7 @@ version = "0.35.0" source = "git+https://github.com/servo/rust-azure#5c648f2bd5d2d600c28d56f07c29c4e2a08173b6" dependencies = [ "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "servo-skia 0.30000020.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -412,9 +412,9 @@ dependencies = [ "canvas_traits 0.0.1", "compositing 0.0.1", "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -423,8 +423,8 @@ dependencies = [ "pixels 0.0.1", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "servo_config 0.0.1", - "webrender 0.58.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender 0.60.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -432,8 +432,8 @@ name = "canvas_traits" version = "0.0.1" dependencies = [ "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of 0.0.1", @@ -442,7 +442,7 @@ dependencies = [ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "servo_config 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -498,7 +498,7 @@ name = "cgl" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -609,10 +609,10 @@ version = "0.0.1" dependencies = [ "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "embedder_traits 0.0.1", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", @@ -629,8 +629,8 @@ dependencies = [ "style_traits 0.0.1", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender 0.58.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender 0.60.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webvr 0.0.1", "webvr_traits 0.0.1", ] @@ -650,7 +650,7 @@ dependencies = [ "debugger 0.0.1", "devtools_traits 0.0.1", "embedder_traits 0.0.1", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.2.0 (git+https://github.com/servo/gaol)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -671,7 +671,7 @@ dependencies = [ "servo_remutex 0.0.1", "servo_url 0.0.1", "style_traits 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -848,6 +848,24 @@ dependencies = [ "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cstr" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cstr-macros 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "procedural-masquerade 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "cstr-macros" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "procedural-masquerade 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "darling" version = "0.8.0" @@ -899,7 +917,7 @@ dependencies = [ [[package]] name = "deflate" -version = "0.7.5" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1047,7 +1065,7 @@ dependencies = [ [[package]] name = "dwrote" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1077,7 +1095,7 @@ dependencies = [ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "servo_url 0.0.1", "style_traits 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1170,13 +1188,24 @@ dependencies = [ [[package]] name = "euclid" -version = "0.19.4" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "euclid_macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "euclid_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "expat-sys" version = "2.1.6" @@ -1345,8 +1374,8 @@ dependencies = [ "core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 13.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "dwrote 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "fontsan 0.4.0 (git+https://github.com/servo/fontsan)", "freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1374,7 +1403,7 @@ dependencies = [ "ucd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1410,7 +1439,7 @@ dependencies = [ [[package]] name = "gleam" -version = "0.6.8" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1966,7 +1995,7 @@ dependencies = [ [[package]] name = "image" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1976,7 +2005,8 @@ dependencies = [ "num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "png 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "png 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-transmute 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "tiff 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2025,7 +2055,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2148,7 +2178,7 @@ dependencies = [ "canvas_traits 0.0.1", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "embedder_traits 0.0.1", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", @@ -2182,7 +2212,7 @@ dependencies = [ "style_traits 0.0.1", "unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2194,7 +2224,7 @@ dependencies = [ "atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "embedder_traits 0.0.1", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", @@ -2229,7 +2259,7 @@ dependencies = [ "style 0.0.1", "style_traits 0.0.1", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2245,7 +2275,7 @@ dependencies = [ "profile_traits 0.0.1", "script_traits 0.0.1", "servo_url 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2331,10 +2361,10 @@ dependencies = [ "devtools_traits 0.0.1", "embedder_traits 0.0.1", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.2.0 (git+https://github.com/servo/gaol)", "gfx 0.0.1", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "layout_thread 0.0.1", @@ -2353,8 +2383,8 @@ dependencies = [ "style 0.0.1", "style_traits 0.0.1", "webdriver_server 0.0.1", - "webrender 0.58.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender 0.60.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webvr 0.0.1", "webvr_traits 0.0.1", ] @@ -2441,7 +2471,7 @@ dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "hashglobe 0.1.0", "hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", "hyper_serde 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2458,7 +2488,7 @@ dependencies = [ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "xml5ever 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2553,7 +2583,7 @@ dependencies = [ "profile_traits 0.0.1", "servo_url 0.0.1", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2709,7 +2739,7 @@ dependencies = [ "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "size_of_test 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2765,7 +2795,7 @@ dependencies = [ "tokio-timer 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2790,7 +2820,7 @@ dependencies = [ "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", "hyper_serde 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", + "image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2808,7 +2838,7 @@ dependencies = [ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2927,9 +2957,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3095,7 +3125,7 @@ dependencies = [ name = "pixels" version = "0.0.1" dependencies = [ - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of 0.0.1", "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3108,22 +3138,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "plane-split" -version = "0.13.3" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "png" -version = "0.12.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "deflate 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", + "deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)", "inflate 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "num-iter 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3332,9 +3362,9 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bindgen 0.46.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "gvr-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3351,7 +3381,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "android_injected_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3382,6 +3412,11 @@ dependencies = [ "stb_truetype 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "safe-transmute" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "safemem" version = "0.2.0" @@ -3429,16 +3464,16 @@ dependencies = [ "embedder_traits 0.0.1", "encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)", "enum-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "headers-core 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "headers-ext 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", "hyper_serde 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", + "image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3493,7 +3528,7 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "utf-8 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", "xml5ever 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3507,7 +3542,7 @@ dependencies = [ "canvas_traits 0.0.1", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "html5ever 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3526,7 +3561,7 @@ dependencies = [ "servo_url 0.0.1", "style 0.0.1", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -3544,7 +3579,7 @@ dependencies = [ name = "script_tests" version = "0.0.1" dependencies = [ - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "script 0.0.1", "servo_url 0.0.1", @@ -3560,7 +3595,7 @@ dependencies = [ "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", "embedder_traits 0.0.1", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3580,7 +3615,7 @@ dependencies = [ "style_traits 0.0.1", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -3660,9 +3695,10 @@ dependencies = [ "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3674,7 +3710,6 @@ dependencies = [ "sig 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "tinyfiledialogs 3.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winit 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "winres 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.17.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3734,7 +3769,7 @@ source = "git+https://github.com/servo/media#4e2602b5154c0272703a88396fd3b286d34 dependencies = [ "boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3806,9 +3841,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3851,7 +3886,7 @@ dependencies = [ "dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "embedder_traits 0.0.1", "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3881,11 +3916,11 @@ name = "servo_geometry" version = "0.0.1" dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of 0.0.1", "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -4039,6 +4074,7 @@ name = "smallvec" version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4134,7 +4170,7 @@ dependencies = [ "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "fallible 0.0.1", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "hashglobe 0.1.0", @@ -4197,7 +4233,7 @@ dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4220,7 +4256,7 @@ dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "malloc_size_of 0.0.1", "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.21.0", @@ -4228,7 +4264,7 @@ dependencies = [ "servo_arc 0.1.1", "servo_atoms 0.0.1", "servo_url 0.0.1", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", ] [[package]] @@ -4788,9 +4824,9 @@ dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", + "image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4810,8 +4846,8 @@ dependencies = [ [[package]] name = "webrender" -version = "0.58.0" -source = "git+https://github.com/servo/webrender#2ff8da0eae0d695105a8d854129e4cf876724edb" +version = "0.60.0" +source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f" dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4822,16 +4858,18 @@ dependencies = [ "core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 13.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "dwrote 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cstr 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", + "image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "plane-split 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)", + "plane-split 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "ron 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4840,15 +4878,16 @@ dependencies = [ "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "thread_profiler 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.58.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.60.0 (git+https://github.com/servo/webrender)", "webrender_build 0.0.1 (git+https://github.com/servo/webrender)", + "wr_malloc_size_of 0.0.1 (git+https://github.com/servo/webrender)", "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "webrender_api" -version = "0.58.0" -source = "git+https://github.com/servo/webrender#2ff8da0eae0d695105a8d854129e4cf876724edb" +version = "0.60.0" +source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f" dependencies = [ "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4856,19 +4895,21 @@ dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "dwrote 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", + "malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "wr_malloc_size_of 0.0.1 (git+https://github.com/servo/webrender)", ] [[package]] name = "webrender_build" version = "0.0.1" -source = "git+https://github.com/servo/webrender#2ff8da0eae0d695105a8d854129e4cf876724edb" +source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f" dependencies = [ "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4879,8 +4920,8 @@ version = "0.0.1" dependencies = [ "canvas_traits 0.0.1", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", @@ -4964,7 +5005,6 @@ dependencies = [ "cocoa 0.18.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4985,6 +5025,15 @@ dependencies = [ "toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wr_malloc_size_of" +version = "0.0.1" +source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f" +dependencies = [ + "app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ws" version = "0.7.9" @@ -5168,11 +5217,13 @@ dependencies = [ "checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" "checksum cssparser 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa4c7e7b72ef04e94e80cec7a4bd795fc2a67a9ce627bc684cf95dd89711d972" "checksum cssparser-macros 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b16e382d9b983fdb9ac6a36b37fdeb84ce3ea81f749febfee3463cfa7f24275e" +"checksum cstr 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "19f7a08ed4ecd7e077d4cee63937473e6f7cf57b702a9114ef41751b2cbc0f60" +"checksum cstr-macros 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0f12dd847ec773fc98d75edba5394cb87d0f35e7ee548a4c81849ca6374b3d48" "checksum darling 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f000e7b03a0083a30e1f10b1428a530849c21e72b338fa76869b5dbc4b045bf" "checksum darling_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86bc5ce438f4b703755d12f59bbf0a16c642766d4534e922db47569dbdd0b998" "checksum darling_macro 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9973050ba46be2a2935a7b316147f41a808ac604b8f0fef6eba77fd47a89daeb" "checksum dbus 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3d975a175aa2dced1a6cd410b89a1bf23918f301eab2b6f7c5e608291b757639" -"checksum deflate 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ebb02aaf4b775afc96684b8402510a338086974e38570a1f65bea8c202eb77a7" +"checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" "checksum derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f57d78cf3bd45270dad4e70c21ec77a960b36c7a841ff9db76aaa775a8fb871" "checksum device 0.0.1 (git+https://github.com/servo/devices)" = "" "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" @@ -5182,7 +5233,7 @@ dependencies = [ "checksum downcast-rs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "18df8ce4470c189d18aa926022da57544f31e154631eb4cfe796aea97051fe6c" "checksum dtoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "80c8b71fd71146990a9742fc06dcbbde19161a267e0ad4e572c35162f4578c90" "checksum dtoa-short 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6f727b406462fd57c95fed84d1b0dbfb5f0136fcac005adba9ea0367c05cc8" -"checksum dwrote 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2ea0fd88d96838ce5ed30326338cc04a0eb4cff10e3e15d188d74112777103" +"checksum dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c31c624339dab99c223a4b26c2e803b7c248adaca91549ce654c76f39a03f5c8" "checksum either 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18785c1ba806c258137c937e44ada9ee7e69a37e3c72077542cd2f069d78562a" "checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb" "checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c" @@ -5194,7 +5245,8 @@ dependencies = [ "checksum enum-iterator-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "293ee6af5f9349c2594a7c867b7c89347fb939415508e6367a19bd246ffc08d8" "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" -"checksum euclid 0.19.4 (registry+https://github.com/rust-lang/crates.io-index)" = "dbbf962bb6f877239a34491f2e0a12c6b824f389bc789eb90f1d70d4780b0727" +"checksum euclid 0.19.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d1a7698bdda3d7444a79d33bdc96e8b518d44ea3ff101d8492a6ca1207b886ea" +"checksum euclid_macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdcb84c18ea5037a1c5a23039b4ff29403abce2e0d6b1daa11cf0bde2b30be15" "checksum expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" @@ -5217,7 +5269,7 @@ dependencies = [ "checksum getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "b900c08c1939860ce8b54dc6a89e26e00c04c380fd0e09796799bd7f12861e05" "checksum gif 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff3414b424657317e708489d2857d9575f4403698428b040b609b9d1c1a84a2c" "checksum gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a0ffaf173cf76c73a73e080366bf556b4776ece104b06961766ff11449f38604" -"checksum gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4b47f5b15742aee359c7895ab98cf2cceecc89bb4feb6f4e42f802d7899877da" +"checksum gleam 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d7591624fbbc384a8195791facbd16a5b118d5d2240c508de518b7ccc771fe" "checksum glib 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "740f7fda8dde5f5e3944dabdb4a73ac6094a8a7fdf0af377468e98ca93733e61" "checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" @@ -5263,7 +5315,7 @@ dependencies = [ "checksum hyper_serde 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "af6cd576f3bf6d7dabc34828c16a08c99e71dca01c87e4a5d754c6ea3995f3d9" "checksum ident_case 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c9826188e666f2ed92071d2dadef6edc430b11b158b5b2b3f4babbcc891eaaa" "checksum idna 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951eaf7d" -"checksum image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44665b4395d1844c96e7dc8ed5754782a1cdfd9ef458a80bbe45702681450504" +"checksum image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)" = "52fb0666a1273dac46f9725aa4859bcd5595fc3554cf3495051b4de8db745e7d" "checksum immeta 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7371aa3c98fad60de2d9b517e2e1ed45593c32b0c77249310fa507749a2a318b" "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum inflate 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6f53b811ee8e2057ccf9643ca6b4277de90efaf5e61e55fd5254576926bb4245" @@ -5354,8 +5406,8 @@ dependencies = [ "checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b" "checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" -"checksum plane-split 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9b1d9a84aa3bbc2dafd06856bdb1dc333eb1d442ad8987b9d596c7344b3ed969" -"checksum png 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f54b9600d584d3b8a739e1662a595fab051329eff43f20e7d8cc22872962145b" +"checksum plane-split 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9760bb0546502fcfae6d2d1d638fac6b9272027a3efae34060218152d0ce8387" +"checksum png 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9adebf7fb91ccf5eac9da1a8e00e83cb8ae882c3e8d8e4ad59da73cb8c82a2c9" "checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd" "checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" "checksum proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "38fddd23d98b2144d197c0eca5705632d4fe2667d14a6be5df8934f8d74f1978" @@ -5380,6 +5432,7 @@ dependencies = [ "checksum rustc-demangle 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3058a43ada2c2d0b92b3ae38007a2d0fa5e9db971be260e0171408a4ff471c95" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum rusttype 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b8eb11f5b0a98c8eca2fb1483f42646d8c340e83e46ab416f8a063a0fd0eeb20" +"checksum safe-transmute 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9604873ffe1980bc1f179103704a65c8aca141c248d9e52b7af95ff10578166e" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" "checksum same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb6eded0b06a0b512c8ddbcf04089138c9b4362c2f696f3c3d76039d68f3637" "checksum scoped_threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef399c8893e8cb7aa9696e895427fab3a6bf265977bb96e126f24ddd2cda85a" @@ -5481,8 +5534,8 @@ dependencies = [ "checksum wayland-scanner 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f1927ee62e4e149c010dc9eca8ca47e238416cd6f45f688eb9f8a8e9c3794c30" "checksum wayland-sys 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ca41ed78a12256f81df6f53fcbe4503213ba442e02cdad3c9c888a64a668eaf4" "checksum webdriver 0.38.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6022ea74cc9f0085c01ff24965d935cd40f9592d7a56f13909c65f08ea98149" -"checksum webrender 0.58.0 (git+https://github.com/servo/webrender)" = "" -"checksum webrender_api 0.58.0 (git+https://github.com/servo/webrender)" = "" +"checksum webrender 0.60.0 (git+https://github.com/servo/webrender)" = "" +"checksum webrender_api 0.60.0 (git+https://github.com/servo/webrender)" = "" "checksum webrender_build 0.0.1 (git+https://github.com/servo/webrender)" = "" "checksum which 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -5494,6 +5547,7 @@ dependencies = [ "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum winit 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "27aa86a5723951d6a08c2acb9f10e25cb39ceb5b1987d7daf74e181b21f8f50b" "checksum winres 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "27d9192d6356d7efe8405dec6c5506b67543cf64b6049968f39f4c4623b4f25d" +"checksum wr_malloc_size_of 0.0.1 (git+https://github.com/servo/webrender)" = "" "checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum x11 2.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e5c4ac579b5d324dc4add02312b5d0e3e0218521e2d5779d526ac39ee4bb171" diff --git a/components/canvas/webgl_mode/inprocess.rs b/components/canvas/webgl_mode/inprocess.rs index 9166eea55f3..b93b2fb0a19 100644 --- a/components/canvas/webgl_mode/inprocess.rs +++ b/components/canvas/webgl_mode/inprocess.rs @@ -151,7 +151,7 @@ impl webrender::OutputImageHandler for OutputHandler { fn lock( &mut self, id: webrender_api::PipelineId, - ) -> Option<(u32, webrender_api::DeviceIntSize)> { + ) -> Option<(u32, webrender_api::FramebufferIntSize)> { // Insert a fence in the WR command queue let gl_sync = self .webrender_gl @@ -164,7 +164,7 @@ impl webrender::OutputImageHandler for OutputHandler { self.lock_channel.1.recv().unwrap().map(|(tex_id, size)| { ( tex_id, - webrender_api::DeviceIntSize::new(size.width, size.height), + webrender_api::FramebufferIntSize::new(size.width, size.height), ) }) } diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml index c07e7365ad9..b373c81700b 100644 --- a/components/compositing/Cargo.toml +++ b/components/compositing/Cargo.toml @@ -21,7 +21,7 @@ embedder_traits = {path = "../embedder_traits"} euclid = "0.19" gfx_traits = {path = "../gfx_traits"} gleam = {version = "0.6", optional = true} -image = "0.20" +image = "0.21" ipc-channel = "0.11" libc = "0.2" keyboard-types = "0.4.3" diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 9ff74668e0d..8a413a57b3d 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -41,7 +41,10 @@ use std::rc::Rc; use style_traits::viewport::ViewportConstraints; use style_traits::{CSSPixel, DevicePixel, PinchZoomFactor}; use time::{now, precise_time_ns, precise_time_s}; -use webrender_api::{self, DeviceIntPoint, DevicePoint, HitTestFlags, HitTestResult}; +use webrender_api::{ + self, DeviceIntPoint, DevicePoint, FramebufferIntRect, FramebufferIntSize, HitTestFlags, + HitTestResult, +}; use webrender_api::{LayoutVector2D, ScrollLocation}; use webvr_traits::WebVRMainThreadHeartbeat; @@ -575,10 +578,16 @@ impl IOCompositor { fn send_window_size(&self, size_type: WindowSizeType) { let dppx = self.page_zoom * self.embedder_coordinates.hidpi_factor; - self.webrender_api.set_window_parameters( + let flipped_viewport = { + let fb_height = self.embedder_coordinates.framebuffer.height; + let mut view = self.embedder_coordinates.viewport.clone(); + view.origin.y = fb_height - view.origin.y - view.size.height; + FramebufferIntRect::from_untyped(&view.to_untyped()) + }; + + self.webrender_api.set_document_view( self.webrender_document, - self.embedder_coordinates.framebuffer, - self.embedder_coordinates.viewport, + flipped_viewport, self.embedder_coordinates.hidpi_factor.get(), ); @@ -612,9 +621,7 @@ impl IOCompositor { self.update_zoom_transform(); } - if self.embedder_coordinates.viewport == old_coords.viewport && - self.embedder_coordinates.framebuffer == old_coords.framebuffer - { + if self.embedder_coordinates.viewport == old_coords.viewport { return; } @@ -1203,11 +1210,16 @@ impl IOCompositor { || { debug!("compositor: compositing"); + let size = FramebufferIntSize::from_untyped( + &self.embedder_coordinates.framebuffer.to_untyped(), + ); + + self.window.gl().clear_color(1.0, 1.0, 1.0, 0.0); + self.window.gl().clear(gleam::gl::COLOR_BUFFER_BIT); + // Paint the scene. // TODO(gw): Take notice of any errors the renderer returns! - self.webrender - .render(self.embedder_coordinates.framebuffer) - .ok(); + self.webrender.render(size).ok(); }, ); diff --git a/components/compositing/gl.rs b/components/compositing/gl.rs index d771bc6aedf..44d69254692 100644 --- a/components/compositing/gl.rs +++ b/components/compositing/gl.rs @@ -4,7 +4,7 @@ use gleam::gl; use image::RgbImage; -use servo_geometry::DeviceUintLength; +use servo_geometry::FramebufferUintLength; #[derive(Default)] pub struct RenderTargetInfo { @@ -15,8 +15,8 @@ pub struct RenderTargetInfo { pub fn initialize_png( gl: &dyn gl::Gl, - width: DeviceUintLength, - height: DeviceUintLength, + width: FramebufferUintLength, + height: FramebufferUintLength, ) -> RenderTargetInfo { let framebuffer_ids = gl.gen_framebuffers(1); gl.bind_framebuffer(gl::FRAMEBUFFER, framebuffer_ids[0]); @@ -82,8 +82,8 @@ pub fn initialize_png( pub fn draw_img( gl: &dyn gl::Gl, render_target_info: RenderTargetInfo, - width: DeviceUintLength, - height: DeviceUintLength, + width: FramebufferUintLength, + height: FramebufferUintLength, ) -> RgbImage { let width = width.get() as usize; let height = height.get() as usize; diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs index 6c4ba4b3cee..66fc50b7dc2 100644 --- a/components/compositing/windowing.rs +++ b/components/compositing/windowing.rs @@ -17,7 +17,9 @@ use std::fmt::{Debug, Error, Formatter}; #[cfg(feature = "gl")] use std::rc::Rc; use style_traits::DevicePixel; -use webrender_api::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePoint, ScrollLocation}; +use webrender_api::{ + DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePoint, FramebufferIntSize, ScrollLocation, +}; use webvr::VRServiceManager; use webvr_traits::WebVRMainThreadHeartbeat; @@ -167,7 +169,7 @@ pub struct EmbedderCoordinates { /// Size of the native window. pub window: (DeviceIntSize, DeviceIntPoint), /// Size of the GL buffer in the window. - pub framebuffer: DeviceIntSize, + pub framebuffer: FramebufferIntSize, /// Coordinates of the document within the framebuffer. pub viewport: DeviceIntRect, } diff --git a/components/geometry/lib.rs b/components/geometry/lib.rs index fdf7f728b8c..45d423f0ab5 100644 --- a/components/geometry/lib.rs +++ b/components/geometry/lib.rs @@ -8,12 +8,11 @@ extern crate malloc_size_of_derive; use app_units::{Au, MAX_AU, MIN_AU}; use euclid::{Length, Point2D, Rect, Size2D}; use std::f32; -use style_traits::DevicePixel; -use webrender_api::{LayoutPoint, LayoutRect, LayoutSize}; +use webrender_api::{FramebufferPixel, LayoutPoint, LayoutRect, LayoutSize}; // Units for use with euclid::length and euclid::scale_factor. -pub type DeviceUintLength = Length; +pub type FramebufferUintLength = Length; /// A normalized "pixel" at the default resolution for the display. /// diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml index 41da71fd6f4..28da033b807 100644 --- a/components/gfx/Cargo.toml +++ b/components/gfx/Cargo.toml @@ -63,5 +63,5 @@ servo-fontconfig = "0.2.1" xml5ever = {version = "0.12"} [target.'cfg(target_os = "windows")'.dependencies] -dwrote = "0.7" +dwrote = "0.8" truetype = "0.26" diff --git a/components/gfx/platform/freetype/font_template.rs b/components/gfx/platform/freetype/font_template.rs index 625f47395c6..b1b356d0f25 100644 --- a/components/gfx/platform/freetype/font_template.rs +++ b/components/gfx/platform/freetype/font_template.rs @@ -6,6 +6,7 @@ use servo_atoms::Atom; use std::fmt; use std::fs::File; use std::io::{Error, Read}; +use std::path::PathBuf; use webrender_api::NativeFontHandle; /// Platform specific font representation for Linux. @@ -61,7 +62,7 @@ impl FontTemplateData { pub fn native_font(&self) -> Option { if self.bytes.is_none() { Some(NativeFontHandle { - pathname: String::from(&*self.identifier), + path: PathBuf::from(&*self.identifier), index: 0, }) } else { diff --git a/components/gfx/platform/windows/font.rs b/components/gfx/platform/windows/font.rs index 6c183066a9b..7ee36b91aa8 100644 --- a/components/gfx/platform/windows/font.rs +++ b/components/gfx/platform/windows/font.rs @@ -280,7 +280,8 @@ impl FontHandleMethods for FontHandle { let face = font_file .unwrap() - .create_face(0, dwrote::DWRITE_FONT_SIMULATIONS_NONE); + .create_face(0, dwrote::DWRITE_FONT_SIMULATIONS_NONE) + .map_err(|_| ())?; let info = FontInfo::new_from_face(&face)?; (info, face) } else { diff --git a/components/gfx/platform/windows/font_list.rs b/components/gfx/platform/windows/font_list.rs index cd963618cfd..d9d1261dba9 100644 --- a/components/gfx/platform/windows/font_list.rs +++ b/components/gfx/platform/windows/font_list.rs @@ -64,11 +64,6 @@ where } } -pub fn descriptor_from_atom(ident: &Atom) -> FontDescriptor { - let fonts = FONT_ATOM_MAP.lock().unwrap(); - fonts.get(ident).unwrap().clone() -} - pub fn font_from_atom(ident: &Atom) -> Font { let fonts = FONT_ATOM_MAP.lock().unwrap(); FontCollection::system() diff --git a/components/gfx/platform/windows/font_template.rs b/components/gfx/platform/windows/font_template.rs index 3a438ac6970..8576e3f6fc8 100644 --- a/components/gfx/platform/windows/font_template.rs +++ b/components/gfx/platform/windows/font_template.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::platform::windows::font_list::{descriptor_from_atom, font_from_atom}; +use crate::platform::windows::font_list::font_from_atom; use servo_atoms::Atom; use std::fmt; use std::io; @@ -59,10 +59,16 @@ impl FontTemplateData { } pub fn native_font(&self) -> Option { - if self.bytes.is_none() { - Some(descriptor_from_atom(&self.identifier)) - } else { - None + if self.bytes.is_some() { + return None; } + let font = font_from_atom(&self.identifier); + let face = font.create_font_face(); + let files = face.get_files(); + let path = files.iter().next()?.get_font_file_path()?; + Some(NativeFontHandle { + path, + index: face.get_index(), + }) } } diff --git a/components/layout/display_list/builder.rs b/components/layout/display_list/builder.rs index 73343c3a4f2..cc2585c3043 100644 --- a/components/layout/display_list/builder.rs +++ b/components/layout/display_list/builder.rs @@ -2012,6 +2012,7 @@ impl Fragment { offset: LayoutVector2D::new(shadow.horizontal.px(), shadow.vertical.px()), color: self.style.resolve_color(shadow.color).to_layout(), blur_radius: shadow.blur.px(), + should_inflate: true, }, }, ))); diff --git a/components/layout/display_list/webrender_helpers.rs b/components/layout/display_list/webrender_helpers.rs index a90b9711e0d..099a1d1807a 100644 --- a/components/layout/display_list/webrender_helpers.rs +++ b/components/layout/display_list/webrender_helpers.rs @@ -10,8 +10,10 @@ use crate::display_list::items::{ClipScrollNode, ClipScrollNodeType}; use crate::display_list::items::{DisplayItem, DisplayList, StackingContextType}; use msg::constellation_msg::PipelineId; -use webrender_api::{self, ClipId, DisplayListBuilder, RasterSpace, SpaceAndClipInfo, SpatialId}; -use webrender_api::{LayoutPoint, SpecificDisplayItem}; +use webrender_api::{ + self, ClipId, DisplayListBuilder, RasterSpace, ReferenceFrameKind, SpaceAndClipInfo, SpatialId, +}; +use webrender_api::{LayoutPoint, PropertyBinding, SpecificDisplayItem}; pub trait WebRenderDisplayListConverter { fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder; @@ -204,18 +206,32 @@ impl WebRenderDisplayItemConverter for DisplayItem { let mut info = webrender_api::LayoutPrimitiveInfo::new(stacking_context.bounds); let spatial_id = if let Some(frame_index) = stacking_context.established_reference_frame { - debug_assert!( - stacking_context.transform.is_some() || - stacking_context.perspective.is_some() - ); + let (transform, ref_frame) = + match (stacking_context.transform, stacking_context.perspective) { + (None, Some(p)) => ( + p, + ReferenceFrameKind::Perspective { + scrolling_relative_to: None, + }, + ), + (Some(t), None) => (t, ReferenceFrameKind::Transform), + (Some(t), Some(p)) => ( + t.pre_mul(&p), + ReferenceFrameKind::Perspective { + scrolling_relative_to: None, + }, + ), + (None, None) => unreachable!(), + }; let spatial_id = builder.push_reference_frame( &stacking_context.bounds, state.active_spatial_id, stacking_context.transform_style, - stacking_context.transform.map(Into::into), - stacking_context.perspective, + PropertyBinding::Value(transform), + ref_frame, ); + state.spatial_ids[frame_index.to_index()] = Some(spatial_id); state.clip_ids[frame_index.to_index()] = Some(cur_clip_id); @@ -233,7 +249,9 @@ impl WebRenderDisplayItemConverter for DisplayItem { stacking_context.transform_style, stacking_context.mix_blend_mode, &stacking_context.filters, + &[], RasterSpace::Screen, + /* cache_tiles = */ false, ); }, DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(), @@ -273,6 +291,7 @@ impl WebRenderDisplayItemConverter for DisplayItem { node.clip.complex.clone(), None, scroll_sensitivity, + webrender_api::LayoutVector2D::zero(), ); state.clip_ids[item.node_index.to_index()] = Some(space_clip_info.clip_id); diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml index d018f8cdc7d..5455a56badf 100644 --- a/components/net_traits/Cargo.toml +++ b/components/net_traits/Cargo.toml @@ -20,7 +20,7 @@ headers-ext = "0.0.3" http = "0.1" hyper = "0.12" hyper_serde = "0.9" -piston_image = {package = "image", version = "0.20"} +piston_image = {package = "image", version = "0.21"} ipc-channel = "0.11" lazy_static = "1" log = "0.4" diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index b73a1bee28c..421d16fca3c 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -58,7 +58,7 @@ html5ever = "0.22" http = "0.1" hyper = "0.12" hyper_serde = "0.9" -image = "0.20" +image = "0.21" indexmap = "1.0.2" ipc-channel = "0.11" itertools = "0.8" diff --git a/components/servo/lib.rs b/components/servo/lib.rs index bdf56372dff..44eb62e51fc 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -242,6 +242,7 @@ where }, renderer_kind: renderer_kind, enable_subpixel_aa: opts.enable_subpixel_text_antialiasing, + clear_color: None, ..Default::default() }, None, diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml index 1a80782db35..3fecf338098 100644 --- a/components/webdriver_server/Cargo.toml +++ b/components/webdriver_server/Cargo.toml @@ -16,7 +16,7 @@ cookie = "0.11" crossbeam-channel = "0.3" euclid = "0.19" hyper = "0.12" -image = "0.20" +image = "0.21" ipc-channel = "0.11" keyboard-types = "0.4.3" log = "0.4" diff --git a/ports/libsimpleservo/api/src/lib.rs b/ports/libsimpleservo/api/src/lib.rs index 99d2866b9ad..6cfc6ec1b9e 100644 --- a/ports/libsimpleservo/api/src/lib.rs +++ b/ports/libsimpleservo/api/src/lib.rs @@ -564,13 +564,15 @@ impl WindowMethods for ServoCallbacks { } fn get_coordinates(&self) -> EmbedderCoordinates { - let size = TypedSize2D::new(self.width.get() as i32, self.height.get() as i32); + let fb_size = TypedSize2D::new(self.width.get() as i32, self.height.get() as i32); + let pixel_size = TypedSize2D::new(self.width.get() as i32, self.height.get() as i32); + let viewport = webrender_api::DeviceIntRect::new(TypedPoint2D::zero(), pixel_size); EmbedderCoordinates { - viewport: webrender_api::DeviceIntRect::new(TypedPoint2D::zero(), size), - framebuffer: size, - window: (size, TypedPoint2D::new(0, 0)), - screen: size, - screen_avail: size, + viewport, + framebuffer: fb_size, + window: (pixel_size, TypedPoint2D::new(0, 0)), + screen: pixel_size, + screen_avail: pixel_size, hidpi_factor: TypedScale::new(self.density), } } diff --git a/ports/servo/Cargo.toml b/ports/servo/Cargo.toml index 8f798d9cc65..57bebe383e0 100644 --- a/ports/servo/Cargo.toml +++ b/ports/servo/Cargo.toml @@ -53,7 +53,9 @@ libc = "0.2" log = "0.4" rust-webvr = { version = "0.10.2", features = ["glwindow"] } tinyfiledialogs = "3.0" -winit = {version = "0.18", features = ["icon_loading"]} + +[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies] +image = "0.21" [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies] osmesa-sys = "0.1.2" diff --git a/ports/servo/glutin_app/keyutils.rs b/ports/servo/glutin_app/keyutils.rs index b8360b8e24d..add042a2382 100644 --- a/ports/servo/glutin_app/keyutils.rs +++ b/ports/servo/glutin_app/keyutils.rs @@ -3,7 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use keyboard_types::{Code, Key, KeyboardEvent, KeyState, Modifiers, Location}; -use winit::{ElementState, KeyboardInput, ModifiersState, VirtualKeyCode}; +use glutin::{ElementState, KeyboardInput, ModifiersState, VirtualKeyCode}; // Some shortcuts use Cmd on Mac and Control on other systems. #[cfg(target_os = "macos")] @@ -18,7 +18,7 @@ pub const CMD_OR_ALT: Modifiers = Modifiers::META; pub const CMD_OR_ALT: Modifiers = Modifiers::ALT; fn get_servo_key_from_winit_key(key: Option) -> Key { - use winit::VirtualKeyCode::*; + use glutin::VirtualKeyCode::*; // TODO: figure out how to map NavigateForward, NavigateBackward // TODO: map the remaining keys if possible let key = if let Some(key) = key { @@ -127,7 +127,7 @@ fn get_servo_key_from_winit_key(key: Option) -> Key { } fn get_servo_location_from_winit_key(key: Option) -> Location { - use winit::VirtualKeyCode::*; + use glutin::VirtualKeyCode::*; // TODO: add more numpad keys let key = if let Some(key) = key { key diff --git a/ports/servo/glutin_app/window.rs b/ports/servo/glutin_app/window.rs index bd56a5f0fae..6e24226cadb 100644 --- a/ports/servo/glutin_app/window.rs +++ b/ports/servo/glutin_app/window.rs @@ -7,6 +7,8 @@ use euclid::{TypedPoint2D, TypedVector2D, TypedScale, TypedSize2D}; use gleam::gl; use glutin::{Api, ContextBuilder, GlContext, GlRequest, GlWindow}; +#[cfg(any(target_os = "linux", target_os = "windows"))] +use image; use keyboard_types::{Key, KeyboardEvent, KeyState}; use rust_webvr::GlWindowVRService; use servo::compositing::windowing::{AnimationState, MouseWindowEvent, WindowEvent}; @@ -16,7 +18,7 @@ use servo::script_traits::TouchEventType; use servo::servo_config::{opts, pref}; use servo::servo_geometry::DeviceIndependentPixel; use servo::style_traits::DevicePixel; -use servo::webrender_api::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, ScrollLocation}; +use servo::webrender_api::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, FramebufferIntSize, ScrollLocation}; use servo::webvr::VRServiceManager; use servo::webvr_traits::WebVRMainThreadHeartbeat; use std::cell::{Cell, RefCell}; @@ -32,10 +34,12 @@ use std::time; use super::keyutils::keyboard_event_from_winit; #[cfg(target_os = "windows")] use winapi; -use winit::{ElementState, Event, MouseButton, MouseScrollDelta, TouchPhase, KeyboardInput}; -use winit::dpi::{LogicalPosition, LogicalSize, PhysicalSize}; +use glutin::{ElementState, Event, MouseButton, MouseScrollDelta, TouchPhase, KeyboardInput}; +#[cfg(any(target_os = "linux", target_os = "windows"))] +use glutin::Icon; +use glutin::dpi::{LogicalPosition, LogicalSize, PhysicalSize}; #[cfg(target_os = "macos")] -use winit::os::macos::{ActivationPolicy, WindowBuilderExt}; +use glutin::os::macos::{ActivationPolicy, WindowBuilderExt}; // This should vary by zoom level and maybe actual text size (focused or under cursor) pub const LINE_HEIGHT: f32 = 38.0; @@ -43,7 +47,7 @@ pub const LINE_HEIGHT: f32 = 38.0; const MULTISAMPLES: u16 = 16; #[cfg(target_os = "macos")] -fn builder_with_platform_options(mut builder: winit::WindowBuilder) -> winit::WindowBuilder { +fn builder_with_platform_options(mut builder: glutin::WindowBuilder) -> glutin::WindowBuilder { if opts::get().headless || opts::get().output_file.is_some() { // Prevent the window from showing in Dock.app, stealing focus, // or appearing at all when running in headless mode or generating an @@ -54,7 +58,7 @@ fn builder_with_platform_options(mut builder: winit::WindowBuilder) -> winit::Wi } #[cfg(not(target_os = "macos"))] -fn builder_with_platform_options(builder: winit::WindowBuilder) -> winit::WindowBuilder { +fn builder_with_platform_options(builder: glutin::WindowBuilder) -> glutin::WindowBuilder { builder } @@ -132,7 +136,7 @@ impl HeadlessContext { } enum WindowKind { - Window(GlWindow, RefCell), + Window(GlWindow, RefCell), Headless(HeadlessContext), } @@ -141,7 +145,7 @@ pub struct Window { kind: WindowKind, screen_size: TypedSize2D, inner_size: Cell>, - mouse_down_button: Cell>, + mouse_down_button: Cell>, mouse_down_point: Cell>, event_queue: RefCell>, mouse_pos: Cell>, @@ -187,8 +191,8 @@ impl Window { inner_size = TypedSize2D::new(width as u32, height as u32); WindowKind::Headless(HeadlessContext::new(width as u32, height as u32)) } else { - let events_loop = winit::EventsLoop::new(); - let mut window_builder = winit::WindowBuilder::new() + let events_loop = glutin::EventsLoop::new(); + let mut window_builder = glutin::WindowBuilder::new() .with_title("Servo".to_string()) .with_decorations(!opts::get().no_native_titlebar) .with_transparency(opts::get().no_native_titlebar) @@ -196,13 +200,6 @@ impl Window { .with_visibility(visible) .with_multitouch(); - #[cfg(any(target_os = "linux", target_os = "windows"))] - { - let icon_bytes = include_bytes!("../../../resources/servo64.png"); - let icon = Some(winit::Icon::from_bytes(icon_bytes).expect("Failed to open icon")); - window_builder = window_builder.with_window_icon(icon); - } - window_builder = builder_with_platform_options(window_builder); let mut context_builder = ContextBuilder::new() @@ -216,6 +213,12 @@ impl Window { let glutin_window = GlWindow::new(window_builder, context_builder, &events_loop) .expect("Failed to create window."); + #[cfg(any(target_os = "linux", target_os = "windows"))] + { + let icon_bytes = include_bytes!("../../../resources/servo64.png"); + glutin_window.set_window_icon(Some(load_icon(icon_bytes))); + } + unsafe { glutin_window .context() @@ -362,9 +365,9 @@ impl Window { } } if stop || self.is_animating() { - winit::ControlFlow::Break + glutin::ControlFlow::Break } else { - winit::ControlFlow::Continue + glutin::ControlFlow::Continue } }); } @@ -442,7 +445,7 @@ impl Window { } } - fn winit_event_to_servo_event(&self, event: winit::Event) { + fn winit_event_to_servo_event(&self, event: glutin::Event) { if let WindowKind::Window(ref window, _) = self.kind { if let Event::WindowEvent { window_id, .. } = event { if window.id() != window_id { @@ -452,19 +455,19 @@ impl Window { } match event { Event::WindowEvent { - event: winit::WindowEvent::ReceivedCharacter(ch), + event: glutin::WindowEvent::ReceivedCharacter(ch), .. } => self.handle_received_character(ch), Event::WindowEvent { event: - winit::WindowEvent::KeyboardInput { + glutin::WindowEvent::KeyboardInput { input, .. }, .. } => self.handle_keyboard_input(input), Event::WindowEvent { - event: winit::WindowEvent::MouseInput { state, button, .. }, + event: glutin::WindowEvent::MouseInput { state, button, .. }, .. } => { if button == MouseButton::Left || button == MouseButton::Right { @@ -472,7 +475,7 @@ impl Window { } }, Event::WindowEvent { - event: winit::WindowEvent::CursorMoved { position, .. }, + event: glutin::WindowEvent::CursorMoved { position, .. }, .. } => { let pos = position.to_physical(self.device_hidpi_factor().get() as f64); @@ -485,7 +488,7 @@ impl Window { ))); }, Event::WindowEvent { - event: winit::WindowEvent::MouseWheel { delta, phase, .. }, + event: glutin::WindowEvent::MouseWheel { delta, phase, .. }, .. } => { let (mut dx, mut dy) = match delta { @@ -510,7 +513,7 @@ impl Window { self.event_queue.borrow_mut().push(event); }, Event::WindowEvent { - event: winit::WindowEvent::Touch(touch), + event: glutin::WindowEvent::Touch(touch), .. } => { use servo::script_traits::TouchId; @@ -526,17 +529,17 @@ impl Window { .push(WindowEvent::Touch(phase, id, point)); }, Event::WindowEvent { - event: winit::WindowEvent::Refresh, + event: glutin::WindowEvent::Refresh, .. } => self.event_queue.borrow_mut().push(WindowEvent::Refresh), Event::WindowEvent { - event: winit::WindowEvent::CloseRequested, + event: glutin::WindowEvent::CloseRequested, .. } => { self.event_queue.borrow_mut().push(WindowEvent::Quit); }, Event::WindowEvent { - event: winit::WindowEvent::Resized(size), + event: glutin::WindowEvent::Resized(size), .. } => { // size is DeviceIndependentPixel. @@ -569,8 +572,8 @@ impl Window { /// Helper function to handle a click fn handle_mouse( &self, - button: winit::MouseButton, - action: winit::ElementState, + button: glutin::MouseButton, + action: glutin::ElementState, coords: TypedPoint2D, ) { use servo::script_traits::MouseButton; @@ -629,7 +632,7 @@ impl Window { pub fn set_cursor(&self, cursor: Cursor) { match self.kind { WindowKind::Window(ref window, ..) => { - use winit::MouseCursor; + use glutin::MouseCursor; let winit_cursor = match cursor { Cursor::Default => MouseCursor::Default, @@ -699,12 +702,12 @@ impl WindowMethods for Window { .get_inner_size() .expect("Failed to get window inner size."); let inner_size = (TypedSize2D::new(width as f32, height as f32) * dpr).to_i32(); - let viewport = DeviceIntRect::new(TypedPoint2D::zero(), inner_size); + let framebuffer = FramebufferIntSize::from_untyped(&viewport.size.to_untyped()); EmbedderCoordinates { - viewport: viewport, - framebuffer: inner_size, + viewport, + framebuffer, window: (win_size, win_origin), screen: screen, // FIXME: Glutin doesn't have API for available size. Fallback to screen size @@ -716,9 +719,11 @@ impl WindowMethods for Window { let dpr = self.servo_hidpi_factor(); let size = (TypedSize2D::new(context.width, context.height).to_f32() * dpr).to_i32(); + let viewport = DeviceIntRect::new(TypedPoint2D::zero(), size); + let framebuffer = FramebufferIntSize::from_untyped(&size.to_untyped()); EmbedderCoordinates { - viewport: DeviceIntRect::new(TypedPoint2D::zero(), size), - framebuffer: size, + viewport, + framebuffer, window: (size, TypedPoint2D::zero()), screen: size, screen_avail: size, @@ -741,7 +746,7 @@ impl WindowMethods for Window { fn create_event_loop_waker(&self) -> Box { struct GlutinEventLoopWaker { - proxy: Option>, + proxy: Option>, } impl GlutinEventLoopWaker { fn new(window: &Window) -> GlutinEventLoopWaker { @@ -799,7 +804,7 @@ impl WindowMethods for Window { let name = String::from("Test VR Display"); let size = self.inner_size.get().to_f64(); let size = LogicalSize::new(size.width, size.height); - let mut window_builder = winit::WindowBuilder::new() + let mut window_builder = glutin::WindowBuilder::new() .with_title(name.clone()) .with_dimensions(size) .with_visibility(false) @@ -828,3 +833,18 @@ fn winit_phase_to_touch_event_type(phase: TouchPhase) -> TouchEventType { TouchPhase::Cancelled => TouchEventType::Cancel, } } + +#[cfg(any(target_os = "linux", target_os = "windows"))] +fn load_icon(icon_bytes: &[u8]) -> Icon { + let (icon_rgba, icon_width, icon_height) = { + use image::{GenericImageView, Pixel}; + let image = image::load_from_memory(icon_bytes).expect("Failed to load icon");; + let (width, height) = image.dimensions(); + let mut rgba = Vec::with_capacity((width * height) as usize * 4); + for (_, _, pixel) in image.pixels() { + rgba.extend_from_slice(&pixel.to_rgba().data); + } + (rgba, width, height) + }; + Icon::from_rgba(icon_rgba, icon_width, icon_height).expect("Failed to load icon") +} diff --git a/tests/wpt/metadata/css/compositing/compositing_simple_div.html.ini b/tests/wpt/metadata/css/compositing/compositing_simple_div.html.ini new file mode 100644 index 00000000000..ca8e5e9c9ba --- /dev/null +++ b/tests/wpt/metadata/css/compositing/compositing_simple_div.html.ini @@ -0,0 +1,3 @@ +[compositing_simple_div.html] + type: reftest + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transforms/transform3d-perspective-005.html.ini b/tests/wpt/metadata/css/css-transforms/transform3d-perspective-005.html.ini new file mode 100644 index 00000000000..bb87827bac7 --- /dev/null +++ b/tests/wpt/metadata/css/css-transforms/transform3d-perspective-005.html.ini @@ -0,0 +1,3 @@ +[transform3d-perspective-005.html] + type: reftest + expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/border_radius_zero_sizes_a.html.ini b/tests/wpt/mozilla/meta/css/border_radius_zero_sizes_a.html.ini new file mode 100644 index 00000000000..7ce4f1d5bd2 --- /dev/null +++ b/tests/wpt/mozilla/meta/css/border_radius_zero_sizes_a.html.ini @@ -0,0 +1,3 @@ +[border_radius_zero_sizes_a.html] + type: reftest + expected: FAIL