Regenerate bindings. draft
authorCameron McCormack <cam@mcc.id.au>
Mon, 17 Oct 2016 14:57:29 +0800
changeset 426289 3f913e0ed408ae84a7a95a34352ee083bcfa7db1
parent 426288 0177f6d6d48b8d777be1f62c48016f483acd3632
child 426290 5740218d9ea5d660b3a5deb993a5d1b1ec53ec31
push id32668
push userbmo:cam@mcc.id.au
push dateTue, 18 Oct 2016 09:08:10 +0000
milestone52.0a1
Regenerate bindings. MozReview-Commit-ID: 7vEGOTCkywk
servo/components/style/binding_tools/regen.py
servo/components/style/gecko_bindings/bindings.rs
servo/components/style/gecko_bindings/structs_debug.rs
servo/components/style/gecko_bindings/structs_release.rs
--- a/servo/components/style/binding_tools/regen.py
+++ b/servo/components/style/binding_tools/regen.py
@@ -113,16 +113,17 @@ COMPILATION_TARGETS = {
             "nsCSSValueGradientStop",
             "nsCSSValueList",
             "nsCSSValueList_heap",
             "nsCSSValuePair_heap",
             "nsCSSValuePairList",
             "nsCSSValuePairList_heap",
             "nsCSSValueTokenStream",
             "nsCSSValueTriplet_heap",
+            "nsCursorImage",
             "nsFont",
             "nsIAtom",
             "nsMainThreadPtrHandle",
             "nsMainThreadPtrHolder",
             "nsMargin",
             "nsRect",
             "nsRestyleHint",
             "nsresult",
@@ -168,16 +169,17 @@ COMPILATION_TARGETS = {
             "nsStyleXUL",
             "nsTArray",
             "nsTArrayHeader",
             "pair",
             "Position",
             "RawGeckoDocument",
             "RawGeckoElement",
             "RawGeckoNode",
+            "RefPtr",
             "Runnable",
             "ServoAttrSnapshot",
             "ServoElementSnapshot",
             "SheetParsingMode",
             "Side",
             "StaticRefPtr",
             "StyleAnimation",
             "StyleBasicShape",
@@ -257,16 +259,17 @@ COMPILATION_TARGETS = {
             "RawGeckoNode",
             "ServoElementSnapshot",
             "SheetParsingMode",
             "StyleBasicShape",
             "StyleBasicShapeType",
             "StyleClipPath",
             "nsCSSShadowArray",
             "nsChangeHint",
+            "nsCursorImage",
             "nsFont",
             "nsIAtom",
             "nsIPrincipal",
             "nsIURI",
             "nsMainThreadPtrHolder",
             "nsRestyleHint",
             "nsString",
             "nsStyleBackground",
--- a/servo/components/style/gecko_bindings/bindings.rs
+++ b/servo/components/style/gecko_bindings/bindings.rs
@@ -44,16 +44,17 @@ use gecko_bindings::structs::RawGeckoEle
 use gecko_bindings::structs::RawGeckoNode;
 use gecko_bindings::structs::ServoElementSnapshot;
 use gecko_bindings::structs::SheetParsingMode;
 use gecko_bindings::structs::StyleBasicShape;
 use gecko_bindings::structs::StyleBasicShapeType;
 use gecko_bindings::structs::StyleClipPath;
 use gecko_bindings::structs::nsCSSShadowArray;
 use gecko_bindings::structs::nsChangeHint;
+use gecko_bindings::structs::nsCursorImage;
 use gecko_bindings::structs::nsFont;
 use gecko_bindings::structs::nsIAtom;
 use gecko_bindings::structs::nsIPrincipal;
 use gecko_bindings::structs::nsIURI;
 use gecko_bindings::structs::nsMainThreadPtrHolder;
 use gecko_bindings::structs::nsRestyleHint;
 use gecko_bindings::structs::nsString;
 use gecko_bindings::structs::nsStyleBackground;
@@ -475,16 +476,31 @@ extern "C" {
                                    referrer: *mut ThreadSafeURIHolder,
                                    principal: *mut ThreadSafePrincipalHolder);
 }
 extern "C" {
     pub fn Gecko_CopyListStyleImageFrom(dest: *mut nsStyleList,
                                         src: *const nsStyleList);
 }
 extern "C" {
+    pub fn Gecko_SetCursorArrayLength(ui: *mut nsStyleUserInterface,
+                                      len: usize);
+}
+extern "C" {
+    pub fn Gecko_SetCursorImage(cursor: *mut nsCursorImage,
+                                string_bytes: *const u8, string_length: u32,
+                                base_uri: *mut ThreadSafeURIHolder,
+                                referrer: *mut ThreadSafeURIHolder,
+                                principal: *mut ThreadSafePrincipalHolder);
+}
+extern "C" {
+    pub fn Gecko_CopyCursorArrayFrom(dest: *mut nsStyleUserInterface,
+                                     src: *const nsStyleUserInterface);
+}
+extern "C" {
     pub fn Gecko_SetMozBinding(style_struct: *mut nsStyleDisplay,
                                string_bytes: *const u8, string_length: u32,
                                base_uri: *mut ThreadSafeURIHolder,
                                referrer: *mut ThreadSafeURIHolder,
                                principal: *mut ThreadSafePrincipalHolder);
 }
 extern "C" {
     pub fn Gecko_CopyMozBindingFrom(des: *mut nsStyleDisplay,
--- a/servo/components/style/gecko_bindings/structs_debug.rs
+++ b/servo/components/style/gecko_bindings/structs_debug.rs
@@ -2634,16 +2634,54 @@ impl Clone for nsXPCOMCycleCollectionPar
 #[derive(Debug, Copy, Clone)]
 pub struct pair<_T1, _T2> {
     pub first: _T1,
     pub second: _T2,
 }
 pub type pair_first_type<_T1> = _T1;
 pub type pair_second_type<_T2> = _T2;
 #[repr(C)]
+pub struct bindgen_vtable__bindgen_id_121315 {
+}
+/**
+ * Abstract base class for a representation of the performance of a
+ * component. Embeddings interested in performance monitoring should
+ * provide a concrete implementation of this class, as well as the
+ * relevant callbacks (see below).
+ */
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct PerformanceGroup {
+    pub vtable_: *const bindgen_vtable__bindgen_id_121315,
+    pub recentCycles_: u64,
+    pub recentTicks_: u64,
+    pub recentCPOW_: u64,
+    pub iteration_: u64,
+    pub isActive_: bool,
+    pub isUsedInThisIteration_: bool,
+    pub owner_: *const AutoStopwatch,
+    pub refCount_: u64,
+}
+#[test]
+fn bindgen_test_layout_PerformanceGroup() {
+    assert_eq!(::std::mem::size_of::<PerformanceGroup>() , 64usize);
+    assert_eq!(::std::mem::align_of::<PerformanceGroup>() , 8usize);
+}
+impl Clone for PerformanceGroup {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct AutoStopwatch {
+    pub _address: u8,
+}
+impl Clone for AutoStopwatch {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
 pub struct bindgen_vtable__bindgen_id_130756 {
 }
 /**
  * A class of objects that return source code on demand.
  *
  * When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't
  * retain the source code (and doesn't do lazy bytecode generation). If we ever
  * need the source code, say, in response to a call to Function.prototype.
@@ -4161,16 +4199,36 @@ fn bindgen_test_layout_nsIDOMNode() {
     assert_eq!(::std::mem::size_of::<nsIDOMNode>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsIDOMNode>() , 8usize);
 }
 impl Clone for nsIDOMNode {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
+pub struct nsIDOMClientRect {
+    pub _base: nsISupports,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nsIDOMClientRect_COMTypeInfo<T, U> {
+    pub _address: u8,
+    pub _phantom_0: ::std::marker::PhantomData<T>,
+    pub _phantom_1: ::std::marker::PhantomData<U>,
+}
+#[test]
+fn bindgen_test_layout_nsIDOMClientRect() {
+    assert_eq!(::std::mem::size_of::<nsIDOMClientRect>() , 8usize);
+    assert_eq!(::std::mem::align_of::<nsIDOMClientRect>() , 8usize);
+}
+impl Clone for nsIDOMClientRect {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
 pub struct nsIDOMStyleSheet {
     pub _base: nsISupports,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct nsIDOMStyleSheet_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
@@ -5042,16 +5100,33 @@ pub type nscolor = u32;
 pub enum Side {
     eSideTop = 0,
     eSideRight = 1,
     eSideBottom = 2,
     eSideLeft = 3,
 }
 #[repr(C)]
 #[derive(Debug)]
+pub struct nsPIDOMWindowOuter {
+    pub _base: [u64; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nsPIDOMWindowOuter_COMTypeInfo<T, U> {
+    pub _address: u8,
+    pub _phantom_0: ::std::marker::PhantomData<T>,
+    pub _phantom_1: ::std::marker::PhantomData<U>,
+}
+#[test]
+fn bindgen_test_layout_nsPIDOMWindowOuter() {
+    assert_eq!(::std::mem::size_of::<nsPIDOMWindowOuter>() , 224usize);
+    assert_eq!(::std::mem::align_of::<nsPIDOMWindowOuter>() , 8usize);
+}
+#[repr(C)]
+#[derive(Debug)]
 pub struct CallbackFunction {
     pub _base: CallbackObject,
 }
 #[test]
 fn bindgen_test_layout_CallbackFunction() {
     assert_eq!(::std::mem::size_of::<CallbackFunction>() , 56usize);
     assert_eq!(::std::mem::align_of::<CallbackFunction>() , 8usize);
 }
@@ -7244,16 +7319,49 @@ impl Clone for ImageTracker {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct XPathEvaluator {
     pub _address: u8,
 }
 impl Clone for XPathEvaluator {
     fn clone(&self) -> Self { *self }
 }
+#[repr(C)]
+#[derive(Debug)]
+pub struct ImageData {
+    pub _base: nsISupports,
+    pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
+    pub mWidth: u32,
+    pub mHeight: u32,
+    pub mData: u64,
+}
+pub type ImageData_HasThreadSafeRefCnt = FalseType;
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct ImageData_cycleCollection {
+    pub _base: nsXPCOMCycleCollectionParticipant,
+}
+#[test]
+fn bindgen_test_layout_ImageData_cycleCollection() {
+    assert_eq!(::std::mem::size_of::<ImageData_cycleCollection>() , 16usize);
+    assert_eq!(::std::mem::align_of::<ImageData_cycleCollection>() , 8usize);
+}
+impl Clone for ImageData_cycleCollection {
+    fn clone(&self) -> Self { *self }
+}
+extern "C" {
+    #[link_name = "_ZN7mozilla3dom9ImageData21_cycleCollectorGlobalE"]
+    pub static mut ImageData__cycleCollectorGlobal: ImageData_cycleCollection;
+}
+#[test]
+fn bindgen_test_layout_ImageData() {
+    assert_eq!(::std::mem::size_of::<ImageData>() , 40usize);
+    assert_eq!(::std::mem::align_of::<ImageData>() , 8usize);
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum FillMode {
     None = 0,
     Forwards = 1,
     Backwards = 2,
     Both = 3,
     Auto = 4,
@@ -8530,16 +8638,31 @@ fn bindgen_test_layout_DisplayItemClip_R
                48usize);
     assert_eq!(::std::mem::align_of::<DisplayItemClip_RoundedRect>() ,
                4usize);
 }
 impl Clone for DisplayItemClip_RoundedRect {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
+#[derive(Debug)]
+pub struct DOMRect {
+    pub _base: DOMRectReadOnly,
+    pub _base_1: nsIDOMClientRect,
+    pub mX: f64,
+    pub mY: f64,
+    pub mWidth: f64,
+    pub mHeight: f64,
+}
+#[test]
+fn bindgen_test_layout_DOMRect() {
+    assert_eq!(::std::mem::size_of::<DOMRect>() , 96usize);
+    assert_eq!(::std::mem::align_of::<DOMRect>() , 8usize);
+}
+#[repr(C)]
 #[derive(Debug, Copy)]
 pub struct Grid {
     pub _address: u8,
 }
 impl Clone for Grid {
     fn clone(&self) -> Self { *self }
 }
 #[repr(u32)]
@@ -10853,17 +10976,17 @@ fn bindgen_test_layout_nsStyleUIReset() 
     assert_eq!(::std::mem::align_of::<nsStyleUIReset>() , 1usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCursorImage {
     pub mHaveHotspot: bool,
     pub mHotspotX: f32,
     pub mHotspotY: f32,
-    pub mImage: nsCOMPtr<imgIRequest>,
+    pub mImage: RefPtr<nsStyleImageRequest>,
 }
 #[test]
 fn bindgen_test_layout_nsCursorImage() {
     assert_eq!(::std::mem::size_of::<nsCursorImage>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsCursorImage>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
@@ -10924,35 +11047,35 @@ pub enum nsStyleSVGPaintType {
     eStyleSVGPaintType_Color = 2,
     eStyleSVGPaintType_Server = 3,
     eStyleSVGPaintType_ContextFill = 4,
     eStyleSVGPaintType_ContextStroke = 5,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleSVGPaint {
-    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_245247,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_245238,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_245247 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_245238 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_245247() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245247>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_245238() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245238>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245247>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245238>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_245247 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_245238 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGPaint() {
     assert_eq!(::std::mem::size_of::<nsStyleSVGPaint>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGPaint>() , 8usize);
 }
 #[repr(C)]
@@ -10977,17 +11100,17 @@ pub struct nsStyleSVG {
     pub mShapeRendering: u8,
     pub mStrokeLinecap: u8,
     pub mStrokeLinejoin: u8,
     pub mTextAnchor: u8,
     pub mContextFlags: u8,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleSVG__bindgen_ty_bindgen_id_245416 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_245407 {
     FILL_OPACITY_SOURCE_MASK = 3,
     STROKE_OPACITY_SOURCE_MASK = 12,
     STROKE_DASHARRAY_CONTEXT = 16,
     STROKE_DASHOFFSET_CONTEXT = 32,
     STROKE_WIDTH_CONTEXT = 64,
     FILL_OPACITY_SOURCE_SHIFT = 0,
     STROKE_OPACITY_SOURCE_SHIFT = 2,
 }
@@ -10996,33 +11119,33 @@ fn bindgen_test_layout_nsStyleSVG() {
     assert_eq!(::std::mem::size_of::<nsStyleSVG>() , 120usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVG>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleFilter {
     pub mType: i32,
     pub mFilterParameter: nsStyleCoord,
-    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_245491,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_245491 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_245482,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_245482 {
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_245491() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_245491>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_245482() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_245482>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_245491>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_245482>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_245491 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_245482 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleFilter() {
     assert_eq!(::std::mem::size_of::<nsStyleFilter>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsStyleFilter>() , 8usize);
 }
 #[repr(C)]
--- a/servo/components/style/gecko_bindings/structs_release.rs
+++ b/servo/components/style/gecko_bindings/structs_release.rs
@@ -2621,16 +2621,54 @@ impl Clone for nsXPCOMCycleCollectionPar
 #[derive(Debug, Copy, Clone)]
 pub struct pair<_T1, _T2> {
     pub first: _T1,
     pub second: _T2,
 }
 pub type pair_first_type<_T1> = _T1;
 pub type pair_second_type<_T2> = _T2;
 #[repr(C)]
+pub struct bindgen_vtable__bindgen_id_115763 {
+}
+/**
+ * Abstract base class for a representation of the performance of a
+ * component. Embeddings interested in performance monitoring should
+ * provide a concrete implementation of this class, as well as the
+ * relevant callbacks (see below).
+ */
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct PerformanceGroup {
+    pub vtable_: *const bindgen_vtable__bindgen_id_115763,
+    pub recentCycles_: u64,
+    pub recentTicks_: u64,
+    pub recentCPOW_: u64,
+    pub iteration_: u64,
+    pub isActive_: bool,
+    pub isUsedInThisIteration_: bool,
+    pub owner_: *const AutoStopwatch,
+    pub refCount_: u64,
+}
+#[test]
+fn bindgen_test_layout_PerformanceGroup() {
+    assert_eq!(::std::mem::size_of::<PerformanceGroup>() , 64usize);
+    assert_eq!(::std::mem::align_of::<PerformanceGroup>() , 8usize);
+}
+impl Clone for PerformanceGroup {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct AutoStopwatch {
+    pub _address: u8,
+}
+impl Clone for AutoStopwatch {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
 pub struct bindgen_vtable__bindgen_id_125164 {
 }
 /**
  * A class of objects that return source code on demand.
  *
  * When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't
  * retain the source code (and doesn't do lazy bytecode generation). If we ever
  * need the source code, say, in response to a call to Function.prototype.
@@ -4143,16 +4181,36 @@ fn bindgen_test_layout_nsIDOMNode() {
     assert_eq!(::std::mem::size_of::<nsIDOMNode>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsIDOMNode>() , 8usize);
 }
 impl Clone for nsIDOMNode {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
+pub struct nsIDOMClientRect {
+    pub _base: nsISupports,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nsIDOMClientRect_COMTypeInfo<T, U> {
+    pub _address: u8,
+    pub _phantom_0: ::std::marker::PhantomData<T>,
+    pub _phantom_1: ::std::marker::PhantomData<U>,
+}
+#[test]
+fn bindgen_test_layout_nsIDOMClientRect() {
+    assert_eq!(::std::mem::size_of::<nsIDOMClientRect>() , 8usize);
+    assert_eq!(::std::mem::align_of::<nsIDOMClientRect>() , 8usize);
+}
+impl Clone for nsIDOMClientRect {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
 pub struct nsIDOMStyleSheet {
     pub _base: nsISupports,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct nsIDOMStyleSheet_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
@@ -5021,16 +5079,33 @@ pub type nscolor = u32;
 pub enum Side {
     eSideTop = 0,
     eSideRight = 1,
     eSideBottom = 2,
     eSideLeft = 3,
 }
 #[repr(C)]
 #[derive(Debug)]
+pub struct nsPIDOMWindowOuter {
+    pub _base: [u64; 27usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nsPIDOMWindowOuter_COMTypeInfo<T, U> {
+    pub _address: u8,
+    pub _phantom_0: ::std::marker::PhantomData<T>,
+    pub _phantom_1: ::std::marker::PhantomData<U>,
+}
+#[test]
+fn bindgen_test_layout_nsPIDOMWindowOuter() {
+    assert_eq!(::std::mem::size_of::<nsPIDOMWindowOuter>() , 216usize);
+    assert_eq!(::std::mem::align_of::<nsPIDOMWindowOuter>() , 8usize);
+}
+#[repr(C)]
+#[derive(Debug)]
 pub struct CallbackFunction {
     pub _base: CallbackObject,
 }
 #[test]
 fn bindgen_test_layout_CallbackFunction() {
     assert_eq!(::std::mem::size_of::<CallbackFunction>() , 56usize);
     assert_eq!(::std::mem::align_of::<CallbackFunction>() , 8usize);
 }
@@ -7190,16 +7265,49 @@ impl Clone for ImageTracker {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct XPathEvaluator {
     pub _address: u8,
 }
 impl Clone for XPathEvaluator {
     fn clone(&self) -> Self { *self }
 }
+#[repr(C)]
+#[derive(Debug)]
+pub struct ImageData {
+    pub _base: nsISupports,
+    pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
+    pub mWidth: u32,
+    pub mHeight: u32,
+    pub mData: u64,
+}
+pub type ImageData_HasThreadSafeRefCnt = FalseType;
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct ImageData_cycleCollection {
+    pub _base: nsXPCOMCycleCollectionParticipant,
+}
+#[test]
+fn bindgen_test_layout_ImageData_cycleCollection() {
+    assert_eq!(::std::mem::size_of::<ImageData_cycleCollection>() , 16usize);
+    assert_eq!(::std::mem::align_of::<ImageData_cycleCollection>() , 8usize);
+}
+impl Clone for ImageData_cycleCollection {
+    fn clone(&self) -> Self { *self }
+}
+extern "C" {
+    #[link_name = "_ZN7mozilla3dom9ImageData21_cycleCollectorGlobalE"]
+    pub static mut ImageData__cycleCollectorGlobal: ImageData_cycleCollection;
+}
+#[test]
+fn bindgen_test_layout_ImageData() {
+    assert_eq!(::std::mem::size_of::<ImageData>() , 40usize);
+    assert_eq!(::std::mem::align_of::<ImageData>() , 8usize);
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum FillMode {
     None = 0,
     Forwards = 1,
     Backwards = 2,
     Both = 3,
     Auto = 4,
@@ -8475,16 +8583,31 @@ fn bindgen_test_layout_DisplayItemClip_R
                48usize);
     assert_eq!(::std::mem::align_of::<DisplayItemClip_RoundedRect>() ,
                4usize);
 }
 impl Clone for DisplayItemClip_RoundedRect {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
+#[derive(Debug)]
+pub struct DOMRect {
+    pub _base: DOMRectReadOnly,
+    pub _base_1: nsIDOMClientRect,
+    pub mX: f64,
+    pub mY: f64,
+    pub mWidth: f64,
+    pub mHeight: f64,
+}
+#[test]
+fn bindgen_test_layout_DOMRect() {
+    assert_eq!(::std::mem::size_of::<DOMRect>() , 96usize);
+    assert_eq!(::std::mem::align_of::<DOMRect>() , 8usize);
+}
+#[repr(C)]
 #[derive(Debug, Copy)]
 pub struct Grid {
     pub _address: u8,
 }
 impl Clone for Grid {
     fn clone(&self) -> Self { *self }
 }
 #[repr(u32)]
@@ -10797,17 +10920,17 @@ fn bindgen_test_layout_nsStyleUIReset() 
     assert_eq!(::std::mem::align_of::<nsStyleUIReset>() , 1usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCursorImage {
     pub mHaveHotspot: bool,
     pub mHotspotX: f32,
     pub mHotspotY: f32,
-    pub mImage: nsCOMPtr<imgIRequest>,
+    pub mImage: RefPtr<nsStyleImageRequest>,
 }
 #[test]
 fn bindgen_test_layout_nsCursorImage() {
     assert_eq!(::std::mem::size_of::<nsCursorImage>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsCursorImage>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
@@ -10868,35 +10991,35 @@ pub enum nsStyleSVGPaintType {
     eStyleSVGPaintType_Color = 2,
     eStyleSVGPaintType_Server = 3,
     eStyleSVGPaintType_ContextFill = 4,
     eStyleSVGPaintType_ContextStroke = 5,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleSVGPaint {
-    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_238980,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_238971,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_238980 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_238971 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_238980() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238980>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_238971() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238971>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238980>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238971>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_238980 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_238971 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGPaint() {
     assert_eq!(::std::mem::size_of::<nsStyleSVGPaint>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGPaint>() , 8usize);
 }
 #[repr(C)]
@@ -10921,17 +11044,17 @@ pub struct nsStyleSVG {
     pub mShapeRendering: u8,
     pub mStrokeLinecap: u8,
     pub mStrokeLinejoin: u8,
     pub mTextAnchor: u8,
     pub mContextFlags: u8,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleSVG__bindgen_ty_bindgen_id_239149 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_239140 {
     FILL_OPACITY_SOURCE_MASK = 3,
     STROKE_OPACITY_SOURCE_MASK = 12,
     STROKE_DASHARRAY_CONTEXT = 16,
     STROKE_DASHOFFSET_CONTEXT = 32,
     STROKE_WIDTH_CONTEXT = 64,
     FILL_OPACITY_SOURCE_SHIFT = 0,
     STROKE_OPACITY_SOURCE_SHIFT = 2,
 }
@@ -10940,33 +11063,33 @@ fn bindgen_test_layout_nsStyleSVG() {
     assert_eq!(::std::mem::size_of::<nsStyleSVG>() , 120usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVG>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleFilter {
     pub mType: i32,
     pub mFilterParameter: nsStyleCoord,
-    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_239224,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_239224 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_239215,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_239215 {
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_239224() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_239224>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_239215() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_239215>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_239224>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_239215>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_239224 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_239215 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleFilter() {
     assert_eq!(::std::mem::size_of::<nsStyleFilter>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsStyleFilter>() , 8usize);
 }
 #[repr(C)]