Bug 1430829 - Update Cargo lockfiles and re-vendor rust dependencies. r=jrmuizel
authorKartikaya Gupta <kgupta@mozilla.com>
Fri, 19 Jan 2018 12:33:03 -0500
changeset 454355 ce7010ea6de73ec16081ff6ae3e47924cf2519ee
parent 454354 d1a22efb9e4364b6c39c67f6b988273b739c3e6b
child 454356 6a281573abf459341b264101e4d6d04ee5f3185f
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel
bugs1430829
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1430829 - Update Cargo lockfiles and re-vendor rust dependencies. r=jrmuizel MozReview-Commit-ID: GbEO29Hy9h6
third_party/rust/gl_generator/.cargo-checksum.json
third_party/rust/gl_generator/Cargo.toml
third_party/rust/gl_generator/generators/templates/types/egl.rs
third_party/rust/gl_generator/generators/templates/types/glx.rs
third_party/rust/gl_generator/generators/templates/types/wgl.rs
third_party/rust/gleam/.cargo-checksum.json
third_party/rust/gleam/Cargo.toml
third_party/rust/gleam/build.rs
third_party/rust/gleam/src/gl.rs
third_party/rust/gleam/src/gl_fns.rs
third_party/rust/gleam/src/gles_fns.rs
toolkit/library/gtest/rust/Cargo.lock
toolkit/library/rust/Cargo.lock
--- a/third_party/rust/gl_generator/.cargo-checksum.json
+++ b/third_party/rust/gl_generator/.cargo-checksum.json
@@ -1,1 +1,1 @@
-{"files":{"Cargo.toml":"68c6f061a73673e3ac3c64c6e3b54bea2cb7fe09c6cda794b345497d048ed7d7","README.md":"e0ae9e1224f6ce5d6df8e30272a1a23044d2d33b0051bf32ccd74e559f8a9f6c","generators/debug_struct_gen.rs":"35984ebe92529467d61112d95c380c84d4bd00d5dc8280749c4eb2f185313df7","generators/global_gen.rs":"eb7836db702777cb13b47b4ab46b9287a3c41995d4bafa0e659ba23688d34475","generators/mod.rs":"8622cd66c69530ed156dd3852d126a44a1ab6d84ea3086240c0b5f5cd7e91316","generators/static_gen.rs":"9fb4ee9f056263611658234539977fb415f93435d290053b84b092e05de16924","generators/static_struct_gen.rs":"23b910c2b14936766036876b9915639058e0cf3bca468c317d4edc7f6498b471","generators/struct_gen.rs":"07d1b52409c31c09010bd7f03459559f772f8b9396b3c60563401a8627b5e247","generators/templates/types/egl.rs":"881506faddd220f5ccbd7fc21d74860233f2204ed3dee31d891ae273b1643a74","generators/templates/types/gl.rs":"f71f3a2200c0fa13f09687ef05e51c28c5b11c1bb841acd402c0097d8f9130bd","generators/templates/types/glx.rs":"a2d6a91fc1bf46fab6868b9a01f36fc47e9a9837bc9ed79eba4d08f31117d063","generators/templates/types/wgl.rs":"2270dcf994250a5905b7246ccdbf3770c494cac0642a720ccbb91ac1886490e2","lib.rs":"4d68840c600a1025025438454d68d70e6da3891f2a5bb33406d4255cb257cda1","registry/mod.rs":"4c42448775dc25449c9995a5ec76e95d6c0762d92443f3c12e865768e4e1dc2a","registry/parse.rs":"e508a1c20c47a92f000d444c34e7818443b15cc9e4a45350e73791fb9c6f68a8"},"package":"75d69f914b49d9ff32fdf394cbd798f8c716d74fd19f9cc29da3e99797b2a78d"}
\ No newline at end of file
+{"files":{"Cargo.toml":"629fd3c2eb896803544c82298d3db10b37d8af15d37a311da617baf6c6fabb28","README.md":"e0ae9e1224f6ce5d6df8e30272a1a23044d2d33b0051bf32ccd74e559f8a9f6c","generators/debug_struct_gen.rs":"35984ebe92529467d61112d95c380c84d4bd00d5dc8280749c4eb2f185313df7","generators/global_gen.rs":"eb7836db702777cb13b47b4ab46b9287a3c41995d4bafa0e659ba23688d34475","generators/mod.rs":"8622cd66c69530ed156dd3852d126a44a1ab6d84ea3086240c0b5f5cd7e91316","generators/static_gen.rs":"9fb4ee9f056263611658234539977fb415f93435d290053b84b092e05de16924","generators/static_struct_gen.rs":"23b910c2b14936766036876b9915639058e0cf3bca468c317d4edc7f6498b471","generators/struct_gen.rs":"07d1b52409c31c09010bd7f03459559f772f8b9396b3c60563401a8627b5e247","generators/templates/types/egl.rs":"d1785a30f1098e101302ba74ba4c22cf95ac44b17edf221dbb9d890f4bd635a2","generators/templates/types/gl.rs":"f71f3a2200c0fa13f09687ef05e51c28c5b11c1bb841acd402c0097d8f9130bd","generators/templates/types/glx.rs":"f444166d117b96afed2d8d13db6cd3369d6c59704f296e76202269f411bbd4a8","generators/templates/types/wgl.rs":"9d626e0959374c694c19a36d4dd34dae2f37acf3cb94e9bd4d242a16b41a970d","lib.rs":"4d68840c600a1025025438454d68d70e6da3891f2a5bb33406d4255cb257cda1","registry/mod.rs":"4c42448775dc25449c9995a5ec76e95d6c0762d92443f3c12e865768e4e1dc2a","registry/parse.rs":"e508a1c20c47a92f000d444c34e7818443b15cc9e4a45350e73791fb9c6f68a8"},"package":"4f5c19cde55637681450c92f7a05ea16c78e2b6d0587e601ec1ebdab6960854b"}
\ No newline at end of file
--- a/third_party/rust/gl_generator/Cargo.toml
+++ b/third_party/rust/gl_generator/Cargo.toml
@@ -7,17 +7,17 @@
 #
 # If you believe there's an error in this file please file an
 # issue against the rust-lang/cargo repository. If you're
 # editing this file be aware that the upstream Cargo.toml
 # will likely look very different (and much more reasonable)
 
 [package]
 name = "gl_generator"
-version = "0.6.1"
+version = "0.8.0"
 authors = ["Brendan Zabarauskas <bjzaba@yahoo.com.au>", "Corey Richardson", "Arseny Kapoulkine"]
 description = "Code generators for creating bindings to the Khronos OpenGL APIs."
 homepage = "https://github.com/brendanzab/gl-rs/gl_generator/"
 documentation = "https://docs.rs/gl_generator"
 readme = "README.md"
 keywords = ["gl", "egl", "opengl", "khronos"]
 categories = ["api-bindings", "rendering::graphics-api"]
 license = "Apache-2.0"
--- a/third_party/rust/gl_generator/generators/templates/types/egl.rs
+++ b/third_party/rust/gl_generator/generators/templates/types/egl.rs
@@ -27,17 +27,19 @@ pub type EGLenum = super::__gl_imports::
 pub type EGLAttribKHR = isize;
 pub type EGLAttrib = isize;
 pub type EGLConfig = *const super::__gl_imports::raw::c_void;
 pub type EGLContext = *const super::__gl_imports::raw::c_void;
 pub type EGLDeviceEXT = *const super::__gl_imports::raw::c_void;
 pub type EGLDisplay = *const super::__gl_imports::raw::c_void;
 pub type EGLSurface = *const super::__gl_imports::raw::c_void;
 pub type EGLClientBuffer = *const super::__gl_imports::raw::c_void;
-pub type __eglMustCastToProperFunctionPointerType = extern "system" fn() -> ();
+pub enum __eglMustCastToProperFunctionPointerType_fn {}
+pub type __eglMustCastToProperFunctionPointerType =
+    *mut __eglMustCastToProperFunctionPointerType_fn;
 pub type EGLImageKHR = *const super::__gl_imports::raw::c_void;
 pub type EGLImage = *const super::__gl_imports::raw::c_void;
 pub type EGLOutputLayerEXT = *const super::__gl_imports::raw::c_void;
 pub type EGLOutputPortEXT = *const super::__gl_imports::raw::c_void;
 pub type EGLSyncKHR = *const super::__gl_imports::raw::c_void;
 pub type EGLSync = *const super::__gl_imports::raw::c_void;
 pub type EGLTimeKHR = khronos_utime_nanoseconds_t;
 pub type EGLTime = khronos_utime_nanoseconds_t;
--- a/third_party/rust/gl_generator/generators/templates/types/glx.rs
+++ b/third_party/rust/gl_generator/generators/templates/types/glx.rs
@@ -10,17 +10,18 @@ pub type Window = XID;
 pub type GLXFBConfigID = XID;
 pub type GLXFBConfig = *const super::__gl_imports::raw::c_void;
 pub type GLXContextID = XID;
 pub type GLXContext = *const super::__gl_imports::raw::c_void;
 pub type GLXPixmap = XID;
 pub type GLXDrawable = XID;
 pub type GLXWindow = XID;
 pub type GLXPbuffer = XID;
-pub type __GLXextFuncPtr = extern "system" fn();
+pub enum __GLXextFuncPtr_fn {}
+pub type __GLXextFuncPtr = *mut __GLXextFuncPtr_fn;
 pub type GLXVideoCaptureDeviceNV = XID;
 pub type GLXVideoDeviceNV = super::__gl_imports::raw::c_int;
 pub type GLXVideoSourceSGIX = XID;
 pub type GLXFBConfigIDSGIX = XID;
 pub type GLXFBConfigSGIX = *const super::__gl_imports::raw::c_void;
 pub type GLXPbufferSGIX = XID;
 
 #[repr(C)]
--- a/third_party/rust/gl_generator/generators/templates/types/wgl.rs
+++ b/third_party/rust/gl_generator/generators/templates/types/wgl.rs
@@ -21,17 +21,18 @@ pub type BYTE = super::__gl_imports::raw
 pub type COLORREF = DWORD;
 pub type FLOAT = super::__gl_imports::raw::c_float;
 pub type HDC = HANDLE;
 pub type HENHMETAFILE = HANDLE;
 pub type HGLRC = *const super::__gl_imports::raw::c_void;
 pub type INT = super::__gl_imports::raw::c_int;
 pub type PVOID = *const super::__gl_imports::raw::c_void;
 pub type LPVOID = *const super::__gl_imports::raw::c_void;
-pub type PROC = extern "system" fn(); // Not sure about this one :/
+pub enum __PROC_fn {}
+pub type PROC = *mut __PROC_fn;
 
 #[repr(C)]
 pub struct RECT {
     left: LONG,
     top: LONG,
     right: LONG,
     bottom: LONG,
 }
--- a/third_party/rust/gleam/.cargo-checksum.json
+++ b/third_party/rust/gleam/.cargo-checksum.json
@@ -1,1 +1,1 @@
-{"files":{".travis.yml":"29b74b95210896ce634c11a9037638668473b5a1b3b1716c505cb04dbb6341fa","COPYING":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"0b1402356bfafe5636331294d4d6e65a9bdb953f8497d41f757f1c7b70e047ad","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"2de24b7458d6b88f20324303a48acf64a4f2bbfb83d2ec4d6ff2b4f4a1fd2275","build.rs":"6c391c6f2dd99a7d1c233a3c4b78a2c8355d5e59c74c15ad9d2ec4c5448ea67a","src/gl.rs":"dea0447dd130a46d648f9526b927e0ba6d52b7ef5d1ec92471ac013119cbdee3","src/gl_fns.rs":"b964929cc066751272cd79036683f525a67ee96fe021f8fdb99af4024fa799b6","src/gles_fns.rs":"45dd524107d20175fd1c4a420c91cc88820312d0a65b5b02dcb6082ca9b8a39a","src/lib.rs":"16610c19b45a3f26d56b379a3591aa2e4fc9477e7bd88f86b31c6ea32e834861"},"package":"dff613336334932baaa2759d001f14e06ea1a08a247c05962d1423aa0e89ee99"}
\ No newline at end of file
+{"files":{".travis.yml":"29b74b95210896ce634c11a9037638668473b5a1b3b1716c505cb04dbb6341fa","COPYING":"ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a","Cargo.toml":"764daa15ab6e7c346adfe2a85e2f8c195016cf059fe23965385e987876f9489a","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3","README.md":"2de24b7458d6b88f20324303a48acf64a4f2bbfb83d2ec4d6ff2b4f4a1fd2275","build.rs":"b37b2926b74c1f01bfed9aeaac7286e6570b2b2cc80e51a7583f30c039675ddc","src/gl.rs":"ccc928f20a07d9f256d99e9933394668d1ac7248a5ae08622d564cb33e6a3ce4","src/gl_fns.rs":"7de1a3e4e747c8bfeea6891bf74968c68d409f30b6ef85ff71d49caba1509a06","src/gles_fns.rs":"47af71905b0d88b79fc0dca74146bfb316b44e5e204cc8e54b189f3dd2af2dd5","src/lib.rs":"16610c19b45a3f26d56b379a3591aa2e4fc9477e7bd88f86b31c6ea32e834861"},"package":"4f756699879522bc654ecc44ad42ad14c59803c2dacfa5a67a7fc27257a8b4e9"}
\ No newline at end of file
--- a/third_party/rust/gleam/Cargo.toml
+++ b/third_party/rust/gleam/Cargo.toml
@@ -7,20 +7,20 @@
 #
 # If you believe there's an error in this file please file an
 # issue against the rust-lang/cargo repository. If you're
 # editing this file be aware that the upstream Cargo.toml
 # will likely look very different (and much more reasonable)
 
 [package]
 name = "gleam"
-version = "0.4.15"
+version = "0.4.19"
 authors = ["The Servo Project Developers"]
 build = "build.rs"
 description = "Generated OpenGL bindings and wrapper for Servo."
 documentation = "http://doc.servo.org/gleam/"
 license = "Apache-2.0/MIT"
 repository = "https://github.com/servo/gleam"
 [build-dependencies.gl_generator]
-version = "0.6.1"
+version = "0.8"
 
 [build-dependencies.pkg-config]
 version = "0.3.8"
--- a/third_party/rust/gleam/build.rs
+++ b/third_party/rust/gleam/build.rs
@@ -13,17 +13,18 @@ fn main() {
     let mut file_gles = File::create(&Path::new(&dest).join("gles_bindings.rs")).unwrap();
 
     // OpenGL 3.3 bindings
     let gl_extensions = ["GL_ARB_texture_rectangle",
                          "GL_EXT_debug_marker",
                          "GL_APPLE_client_storage",
                          "GL_APPLE_texture_range",
                          "GL_APPLE_fence",
-                         "GL_ARB_get_program_binary"];
+                         "GL_ARB_get_program_binary",
+                         "GL_ARB_blend_func_extended"];
     let gl_reg = Registry::new(Api::Gl, (3, 3), Profile::Core, Fallbacks::All, gl_extensions);
     gl_reg.write_bindings(gl_generator::StructGenerator, &mut file_gl)
           .unwrap();
 
     // GLES 3.0 bindings
     let gles_extensions = [
         "GL_EXT_texture_format_BGRA8888",
         "GL_OES_EGL_image",
--- a/third_party/rust/gleam/src/gl.rs
+++ b/third_party/rust/gleam/src/gl.rs
@@ -37,31 +37,32 @@ impl Default for GlType {
     #[cfg(not(any(target_os="android", target_os="ios")))]
     fn default() -> GlType {
         GlType::Gl
     }
 }
 
 fn calculate_length(width: GLsizei, height: GLsizei, format: GLenum, pixel_type: GLenum) -> usize {
     let colors = match format {
+        ffi::RED => 1,
         ffi::RGB => 3,
         ffi::BGR => 3,
 
         ffi::RGBA => 4,
         ffi::BGRA => 4,
 
         ffi::ALPHA => 1,
         ffi::LUMINANCE => 1,
         ffi::DEPTH_COMPONENT => 1,
-        _ => panic!("unsupported format for read_pixels"),
+        _ => panic!("unsupported format for read_pixels: {:?}", format),
     };
     let depth = match pixel_type {
         ffi::UNSIGNED_BYTE => 1,
         ffi::FLOAT=> 4,
-        _ => panic!("unsupported pixel_type for read_pixels"),
+        _ => panic!("unsupported pixel_type for read_pixels: {:?}", pixel_type),
     };
 
     return (width * height * colors * depth) as usize;
 }
 
 pub trait Gl {
     fn get_type(&self) -> GlType;
     fn buffer_data_untyped(&self,
@@ -424,16 +425,36 @@ pub trait Gl {
     fn generate_mipmap(&self, target: GLenum);
     fn insert_event_marker_ext(&self, message: &str);
     fn push_group_marker_ext(&self, message: &str);
     fn pop_group_marker_ext(&self);
     fn fence_sync(&self, condition: GLenum, flags: GLbitfield) -> GLsync;
     fn client_wait_sync(&self, sync: GLsync, flags: GLbitfield, timeout: GLuint64);
     fn wait_sync(&self, sync: GLsync, flags: GLbitfield, timeout: GLuint64);
     fn delete_sync(&self, sync: GLsync);
+    fn texture_range_apple(&self, target: GLenum, data: &[u8]);
+    fn gen_fences_apple(&self, n: GLsizei) -> Vec<GLuint>;
+    fn delete_fences_apple(&self, fences: &[GLuint]);
+    fn set_fence_apple(&self, fence: GLuint);
+    fn finish_fence_apple(&self, fence: GLuint);
+    fn test_fence_apple(&self, fence: GLuint);
+
+    // GL_ARB_blend_func_extended
+    fn bind_frag_data_location_indexed(
+        &self,
+        program: GLuint,
+        color_number: GLuint,
+        index: GLuint,
+        name: &str,
+    );
+    fn get_frag_data_index(
+        &self,
+        program: GLuint,
+        name: &str,
+    ) -> GLint;
 }
 
 #[inline]
 pub fn buffer_data<T>(gl_: &Gl, target: GLenum, data: &[T], usage: GLenum) {
     gl_.buffer_data_untyped(target,
                             (data.len() * size_of::<T>()) as GLsizeiptr,
                             data.as_ptr() as *const GLvoid,
                             usage)
--- a/third_party/rust/gleam/src/gl_fns.rs
+++ b/third_party/rust/gleam/src/gl_fns.rs
@@ -1566,15 +1566,96 @@ impl Gl for GlFns {
     }
 
     fn wait_sync(&self, sync: GLsync, flags: GLbitfield, timeout: GLuint64) {
         unsafe {
             self.ffi_gl_.WaitSync(sync as *const _, flags, timeout);
         }
     }
 
+    fn texture_range_apple(&self, target: GLenum, data: &[u8]) {
+        unsafe {
+            self.ffi_gl_.TextureRangeAPPLE(target, data.len() as GLsizei, data.as_ptr() as *const c_void);
+        }
+    }
+
     fn delete_sync(&self, sync: GLsync) {
         unsafe {
             self.ffi_gl_.DeleteSync(sync as *const _);
         }
     }
+
+    fn gen_fences_apple(&self, n: GLsizei) -> Vec<GLuint> {
+        unsafe {
+            let mut result: Vec<_> = repeat(0 as GLuint).take(n as usize).collect();
+            self.ffi_gl_.GenFencesAPPLE(n, result.as_mut_ptr());
+            result
+        }
+    }
+
+    fn delete_fences_apple(&self, fences: &[GLuint]) {
+        unsafe {
+            self.ffi_gl_.DeleteFencesAPPLE(fences.len() as GLsizei, fences.as_ptr());
+        }
+    }
+
+    fn set_fence_apple(&self, fence: GLuint) {
+        unsafe {
+            self.ffi_gl_.SetFenceAPPLE(fence);
+        }
+    }
+
+    fn finish_fence_apple(&self, fence: GLuint) {
+        unsafe {
+            self.ffi_gl_.FinishFenceAPPLE(fence);
+        }
+    }
+
+    fn test_fence_apple(&self, fence: GLuint) {
+        unsafe {
+            self.ffi_gl_.TestFenceAPPLE(fence);
+        }
+    }
+
+    // GL_ARB_blend_func_extended
+    fn bind_frag_data_location_indexed(
+        &self,
+        program: GLuint,
+        color_number: GLuint,
+        index: GLuint,
+        name: &str,
+    ) {
+        if !self.ffi_gl_.BindFragDataLocationIndexed.is_loaded() {
+            return;
+        }
+
+        let c_string = CString::new(name).unwrap();
+
+        unsafe {
+            self.ffi_gl_.BindFragDataLocationIndexed(
+                program,
+                color_number,
+                index,
+                c_string.as_ptr(),
+            )
+        }
+    }
+
+    fn get_frag_data_index(
+        &self,
+        program: GLuint,
+        name: &str,
+    ) -> GLint {
+        if !self.ffi_gl_.GetFragDataIndex.is_loaded() {
+            return -1;
+        }
+
+        let c_string = CString::new(name).unwrap();
+
+        unsafe {
+            self.ffi_gl_.GetFragDataIndex(
+                program,
+                c_string.as_ptr(),
+            )
+        }
+    }
 }
 
--- a/third_party/rust/gleam/src/gles_fns.rs
+++ b/third_party/rust/gleam/src/gles_fns.rs
@@ -1574,10 +1574,53 @@ impl Gl for GlesFns {
         }
     }
 
     fn delete_sync(&self, sync: GLsync) {
         unsafe {
             self.ffi_gl_.DeleteSync(sync as *const _);
         }
     }
+
+    fn texture_range_apple(&self, _target: GLenum, _data: &[u8]) {
+        panic!("not supported")
+    }
+
+    fn gen_fences_apple(&self, _n: GLsizei) -> Vec<GLuint> {
+        panic!("not supported")
+    }
+
+    fn delete_fences_apple(&self, _fences: &[GLuint]) {
+        panic!("not supported")
+    }
+
+    fn set_fence_apple(&self, _fence: GLuint) {
+        panic!("not supported")
+    }
+
+    fn finish_fence_apple(&self, _fence: GLuint) {
+        panic!("not supported")
+    }
+
+    fn test_fence_apple(&self, _fence: GLuint) {
+        panic!("not supported")
+    }
+
+    // GL_ARB_blend_func_extended
+    fn bind_frag_data_location_indexed(
+        &self,
+        _program: GLuint,
+        _color_number: GLuint,
+        _index: GLuint,
+        _name: &str,
+    ) {
+        panic!("not supported");
+    }
+
+    fn get_frag_data_index(
+        &self,
+        _program: GLuint,
+        _name: &str,
+    ) -> GLint {
+        panic!("not supported");
+    }
 }
 
--- a/toolkit/library/gtest/rust/Cargo.lock
+++ b/toolkit/library/gtest/rust/Cargo.lock
@@ -580,30 +580,30 @@ dependencies = [
  "rust_url_capi 0.0.1",
  "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
  "u2fhid 0.1.0",
  "webrender_bindings 0.1.0",
 ]
 
 [[package]]
 name = "gl_generator"
-version = "0.6.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "khronos_api 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gleam"
-version = "0.4.15"
+version = "0.4.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "gl_generator 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glob"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
@@ -1469,17 +1469,17 @@ dependencies = [
  "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-graphics 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-text 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "dwrote 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "freetype 0.3.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.4.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "plane-split 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "smallvec 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1508,17 +1508,17 @@ name = "webrender_bindings"
 version = "0.1.0"
 dependencies = [
  "app_units 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-graphics 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "dwrote 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "webrender 0.56.1",
 ]
 
 [[package]]
 name = "which"
@@ -1603,18 +1603,18 @@ dependencies = [
 "checksum foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ebc04f19019fff1f2d627b5581574ead502f80c48c88900575a46e0840fe5d0"
 "checksum freetype 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "398b8a11884898184d55aca9806f002b3cf68f0e860e0cbb4586f834ee39b0e7"
 "checksum fs2 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c2866"
 "checksum fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c0581a4e363262e52b87f59ee2afe3415361c6ec35e665924eb08afe8ff159"
 "checksum fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "43f3795b4bae048dc6123a6b972cadde2e676f9ded08aef6bb77f5f157684a82"
 "checksum futures 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "55f0008e13fc853f79ea8fc86e931486860d4c4c156cdffb59fa5f7fa833660a"
 "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
 "checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
-"checksum gl_generator 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "75d69f914b49d9ff32fdf394cbd798f8c716d74fd19f9cc29da3e99797b2a78d"
-"checksum gleam 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)" = "dff613336334932baaa2759d001f14e06ea1a08a247c05962d1423aa0e89ee99"
+"checksum gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f5c19cde55637681450c92f7a05ea16c78e2b6d0587e601ec1ebdab6960854b"
+"checksum gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "4f756699879522bc654ecc44ad42ad14c59803c2dacfa5a67a7fc27257a8b4e9"
 "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
 "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 iovec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29d062ee61fccdf25be172e70f34c9f6efc597e1fb8f6526e8437b2046ab26be"
 "checksum itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4833d6978da405305126af4ac88569b5d71ff758581ce5a987dbfa3755f694fc"
 "checksum itoa 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eb2f404fbc66fd9aac13e998248505e7ecb2ad8e44ab6388684c5fb11c6c251c"
 "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
 "checksum khronos_api 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d867c645cfeb8a7fec503731679eac03ac11b7105aa5a71cb8f8ee5271636add"
--- a/toolkit/library/rust/Cargo.lock
+++ b/toolkit/library/rust/Cargo.lock
@@ -579,30 +579,30 @@ dependencies = [
  "rust_url_capi 0.0.1",
  "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
  "u2fhid 0.1.0",
  "webrender_bindings 0.1.0",
 ]
 
 [[package]]
 name = "gl_generator"
-version = "0.6.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "khronos_api 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gleam"
-version = "0.4.15"
+version = "0.4.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "gl_generator 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glob"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
@@ -1481,17 +1481,17 @@ dependencies = [
  "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-graphics 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-text 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "dwrote 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "freetype 0.3.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.4.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
  "plane-split 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "smallvec 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1520,17 +1520,17 @@ name = "webrender_bindings"
 version = "0.1.0"
 dependencies = [
  "app_units 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "core-graphics 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "dwrote 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "euclid 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "gleam 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "webrender 0.56.1",
 ]
 
 [[package]]
 name = "which"
@@ -1615,18 +1615,18 @@ dependencies = [
 "checksum foreign-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ebc04f19019fff1f2d627b5581574ead502f80c48c88900575a46e0840fe5d0"
 "checksum freetype 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "398b8a11884898184d55aca9806f002b3cf68f0e860e0cbb4586f834ee39b0e7"
 "checksum fs2 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c2866"
 "checksum fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c0581a4e363262e52b87f59ee2afe3415361c6ec35e665924eb08afe8ff159"
 "checksum fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "43f3795b4bae048dc6123a6b972cadde2e676f9ded08aef6bb77f5f157684a82"
 "checksum futures 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "55f0008e13fc853f79ea8fc86e931486860d4c4c156cdffb59fa5f7fa833660a"
 "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
 "checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
-"checksum gl_generator 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "75d69f914b49d9ff32fdf394cbd798f8c716d74fd19f9cc29da3e99797b2a78d"
-"checksum gleam 0.4.15 (registry+https://github.com/rust-lang/crates.io-index)" = "dff613336334932baaa2759d001f14e06ea1a08a247c05962d1423aa0e89ee99"
+"checksum gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f5c19cde55637681450c92f7a05ea16c78e2b6d0587e601ec1ebdab6960854b"
+"checksum gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "4f756699879522bc654ecc44ad42ad14c59803c2dacfa5a67a7fc27257a8b4e9"
 "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
 "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 iovec 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29d062ee61fccdf25be172e70f34c9f6efc597e1fb8f6526e8437b2046ab26be"
 "checksum itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4833d6978da405305126af4ac88569b5d71ff758581ce5a987dbfa3755f694fc"
 "checksum itoa 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eb2f404fbc66fd9aac13e998248505e7ecb2ad8e44ab6388684c5fb11c6c251c"
 "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
 "checksum khronos_api 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d867c645cfeb8a7fec503731679eac03ac11b7105aa5a71cb8f8ee5271636add"