Bug 1304913 - Have Servo manage node data directly without FFI calls. r=Manishearth

MozReview-Commit-ID: H8f8VP18TbM
This commit is contained in:
Bobby Holley 2016-09-21 15:42:45 -07:00
parent 336ad0cefb
commit ba743f59d9
6 changed files with 493 additions and 471 deletions

View file

@ -66,6 +66,10 @@ COMPILATION_TARGETS = {
"release": { "release": {
} }
}, },
"raw_lines": [
# We can get rid of this when the bindings move into the style crate.
"pub enum OpaqueStyleData {}",
],
"whitelist_vars": [ "whitelist_vars": [
"NS_THEME_.*", "NS_THEME_.*",
"NODE_.*", "NODE_.*",
@ -77,6 +81,9 @@ COMPILATION_TARGETS = {
"BORDER_STYLE_.*" "BORDER_STYLE_.*"
], ],
"whitelist": [ "whitelist": [
"RawGeckoNode",
"RawGeckoElement",
"RawGeckoDocument",
"Element", "Element",
"Side", "Side",
"nsTArrayHeader", "nsTArrayHeader",
@ -168,6 +175,21 @@ COMPILATION_TARGETS = {
"gfxSize", # <- Same, union { struct { T width; T height; }; T components[2] }; "gfxSize", # <- Same, union { struct { T width; T height; }; T components[2] };
"gfxSize_Super", # Ditto. "gfxSize_Super", # Ditto.
], ],
"servo_mapped_generic_types": [
{
"generic": True,
"gecko": "ServoUnsafeCell",
"servo": "::std::cell::UnsafeCell"
}, {
"generic": True,
"gecko": "ServoCell",
"servo": "::std::cell::Cell"
}, {
"generic": False,
"gecko": "ServoNodeData",
"servo": "OpaqueStyleData"
}
],
}, },
# Generation of the ffi bindings. # Generation of the ffi bindings.
"bindings": { "bindings": {
@ -206,6 +228,8 @@ COMPILATION_TARGETS = {
"FontFamilyType", "nsIAtom", "nsStyleContext", "StyleClipPath", "FontFamilyType", "nsIAtom", "nsStyleContext", "StyleClipPath",
"StyleBasicShapeType", "StyleBasicShape", "nsCSSShadowArray", "StyleBasicShapeType", "StyleBasicShape", "nsCSSShadowArray",
"nsINode", "nsIDocument", "nsIPrincipal", "nsIURI", "nsINode", "nsIDocument", "nsIPrincipal", "nsIURI",
"RawGeckoNode", "RawGeckoElement", "RawGeckoDocument",
"ServoNodeData",
], ],
"servo_nullable_arc_types": [ "servo_nullable_arc_types": [
"ServoComputedValues", "RawServoStyleSheet", "ServoComputedValues", "RawServoStyleSheet",
@ -213,7 +237,6 @@ COMPILATION_TARGETS = {
], ],
"servo_owned_types": [ "servo_owned_types": [
"RawServoStyleSet", "RawServoStyleSet",
"ServoNodeData",
"StyleChildrenIterator", "StyleChildrenIterator",
], ],
"servo_immutable_borrow_types": [ "servo_immutable_borrow_types": [
@ -430,7 +453,17 @@ def build(objdir, target_name, debug, debugger, kind_name=None,
flags.append("{}BorrowedOrNull".format(ty)) flags.append("{}BorrowedOrNull".format(ty))
flags.append("--raw-line") flags.append("--raw-line")
flags.append("pub type {0}BorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, {0}>;".format(ty)) flags.append("pub type {0}BorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, {0}>;".format(ty))
zero_size_type(ty, flags) # Right now the only immutable borrow types are ones which we import
# from the |structs| module. As such, we don't need to create an opaque
# type with zero_size_type. If we ever introduce immutable borrow types
# which _do_ need to be opaque, we'll need a separate mode.
if "servo_mapped_generic_types" in current_target:
for ty in current_target["servo_mapped_generic_types"]:
flags.append("--blacklist-type")
flags.append("{}".format(ty["gecko"]))
flags.append("--raw-line")
flags.append("pub type {0}{2} = {1}{2};".format(ty["gecko"], ty["servo"], "<T>" if ty["generic"] else ""))
if "servo_owned_types" in current_target: if "servo_owned_types" in current_target:
for ty in current_target["servo_owned_types"]: for ty in current_target["servo_owned_types"]:

View file

@ -18,16 +18,10 @@ enum ServoDeclarationBlockVoid{ }
pub struct ServoDeclarationBlock(ServoDeclarationBlockVoid); pub struct ServoDeclarationBlock(ServoDeclarationBlockVoid);
pub type RawGeckoNodeBorrowed<'a> = &'a RawGeckoNode; pub type RawGeckoNodeBorrowed<'a> = &'a RawGeckoNode;
pub type RawGeckoNodeBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoNode>; pub type RawGeckoNodeBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoNode>;
enum RawGeckoNodeVoid{ }
pub struct RawGeckoNode(RawGeckoNodeVoid);
pub type RawGeckoElementBorrowed<'a> = &'a RawGeckoElement; pub type RawGeckoElementBorrowed<'a> = &'a RawGeckoElement;
pub type RawGeckoElementBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoElement>; pub type RawGeckoElementBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoElement>;
enum RawGeckoElementVoid{ }
pub struct RawGeckoElement(RawGeckoElementVoid);
pub type RawGeckoDocumentBorrowed<'a> = &'a RawGeckoDocument; pub type RawGeckoDocumentBorrowed<'a> = &'a RawGeckoDocument;
pub type RawGeckoDocumentBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoDocument>; pub type RawGeckoDocumentBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoDocument>;
enum RawGeckoDocumentVoid{ }
pub struct RawGeckoDocument(RawGeckoDocumentVoid);
pub type RawServoStyleSetBorrowed<'a> = &'a RawServoStyleSet; pub type RawServoStyleSetBorrowed<'a> = &'a RawServoStyleSet;
pub type RawServoStyleSetBorrowedMut<'a> = &'a mut RawServoStyleSet; pub type RawServoStyleSetBorrowedMut<'a> = &'a mut RawServoStyleSet;
pub type RawServoStyleSetOwned = ::sugar::ownership::Owned<RawServoStyleSet>; pub type RawServoStyleSetOwned = ::sugar::ownership::Owned<RawServoStyleSet>;
@ -36,14 +30,6 @@ pub type RawServoStyleSetBorrowedMutOrNull<'a> = ::sugar::ownership::BorrowedMut
pub type RawServoStyleSetOwnedOrNull = ::sugar::ownership::OwnedOrNull<RawServoStyleSet>; pub type RawServoStyleSetOwnedOrNull = ::sugar::ownership::OwnedOrNull<RawServoStyleSet>;
enum RawServoStyleSetVoid{ } enum RawServoStyleSetVoid{ }
pub struct RawServoStyleSet(RawServoStyleSetVoid); pub struct RawServoStyleSet(RawServoStyleSetVoid);
pub type ServoNodeDataBorrowed<'a> = &'a ServoNodeData;
pub type ServoNodeDataBorrowedMut<'a> = &'a mut ServoNodeData;
pub type ServoNodeDataOwned = ::sugar::ownership::Owned<ServoNodeData>;
pub type ServoNodeDataBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, ServoNodeData>;
pub type ServoNodeDataBorrowedMutOrNull<'a> = ::sugar::ownership::BorrowedMut<'a, ServoNodeData>;
pub type ServoNodeDataOwnedOrNull = ::sugar::ownership::OwnedOrNull<ServoNodeData>;
enum ServoNodeDataVoid{ }
pub struct ServoNodeData(ServoNodeDataVoid);
pub type StyleChildrenIteratorBorrowed<'a> = &'a StyleChildrenIterator; pub type StyleChildrenIteratorBorrowed<'a> = &'a StyleChildrenIterator;
pub type StyleChildrenIteratorBorrowedMut<'a> = &'a mut StyleChildrenIterator; pub type StyleChildrenIteratorBorrowedMut<'a> = &'a mut StyleChildrenIterator;
pub type StyleChildrenIteratorOwned = ::sugar::ownership::Owned<StyleChildrenIterator>; pub type StyleChildrenIteratorOwned = ::sugar::ownership::Owned<StyleChildrenIterator>;
@ -179,6 +165,10 @@ use structs::nsINode;
use structs::nsIDocument; use structs::nsIDocument;
use structs::nsIPrincipal; use structs::nsIPrincipal;
use structs::nsIURI; use structs::nsIURI;
use structs::RawGeckoNode;
use structs::RawGeckoElement;
use structs::RawGeckoDocument;
use structs::ServoNodeData;
extern "C" { extern "C" {
pub fn Gecko_EnsureTArrayCapacity(aArray: *mut ::std::os::raw::c_void, pub fn Gecko_EnsureTArrayCapacity(aArray: *mut ::std::os::raw::c_void,
@ -189,7 +179,7 @@ extern "C" {
aElementSize: usize, aElementAlign: usize); aElementSize: usize, aElementAlign: usize);
} }
extern "C" { extern "C" {
pub fn Servo_NodeData_Drop(arg1: *mut ServoNodeData); pub fn Servo_Node_ClearNodeData(arg1: *mut nsINode);
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
@ -387,14 +377,6 @@ extern "C" {
pub fn Gecko_GetServoDeclarationBlock(element: RawGeckoElementBorrowed) pub fn Gecko_GetServoDeclarationBlock(element: RawGeckoElementBorrowed)
-> ServoDeclarationBlockBorrowedOrNull; -> ServoDeclarationBlockBorrowedOrNull;
} }
extern "C" {
pub fn Gecko_GetNodeData(node: RawGeckoNodeBorrowed)
-> ServoNodeDataBorrowedOrNull;
}
extern "C" {
pub fn Gecko_SetNodeData(node: RawGeckoNodeBorrowed,
data: ServoNodeDataOwned);
}
extern "C" { extern "C" {
pub fn Gecko_Atomize(aString: *const ::std::os::raw::c_char, aLength: u32) pub fn Gecko_Atomize(aString: *const ::std::os::raw::c_char, aLength: u32)
-> *mut nsIAtom; -> *mut nsIAtom;

View file

@ -1,5 +1,10 @@
/* automatically generated by rust-bindgen */ /* automatically generated by rust-bindgen */
pub enum OpaqueStyleData {}
pub type ServoUnsafeCell<T> = ::std::cell::UnsafeCell<T>;
pub type ServoCell<T> = ::std::cell::Cell<T>;
pub type ServoNodeData = OpaqueStyleData;
#[derive(Debug)] #[derive(Debug)]
#[repr(C)] #[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
@ -1496,8 +1501,8 @@ pub enum JSWhyMagic {
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout { pub struct jsval_layout {
pub asBits: __BindgenUnionField<u64>, pub asBits: __BindgenUnionField<u64>,
pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_61261>, pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_61264>,
pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_61268>, pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_61271>,
pub asDouble: __BindgenUnionField<f64>, pub asDouble: __BindgenUnionField<f64>,
pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>,
pub asWord: __BindgenUnionField<usize>, pub asWord: __BindgenUnionField<usize>,
@ -1506,20 +1511,20 @@ pub struct jsval_layout {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout__bindgen_ty_bindgen_id_61261 { pub struct jsval_layout__bindgen_ty_bindgen_id_61264 {
pub _bitfield_1: u64, pub _bitfield_1: u64,
} }
#[test] #[test]
fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61261() { fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61264() {
assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61261>() assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61264>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61261>() assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61264>()
, 8usize); , 8usize);
} }
impl Clone for jsval_layout__bindgen_ty_bindgen_id_61261 { impl Clone for jsval_layout__bindgen_ty_bindgen_id_61264 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
impl jsval_layout__bindgen_ty_bindgen_id_61261 { impl jsval_layout__bindgen_ty_bindgen_id_61264 {
#[inline] #[inline]
pub fn payload47(&self) -> u64 { pub fn payload47(&self) -> u64 {
unsafe { unsafe {
@ -1552,36 +1557,36 @@ impl jsval_layout__bindgen_ty_bindgen_id_61261 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout__bindgen_ty_bindgen_id_61268 { pub struct jsval_layout__bindgen_ty_bindgen_id_61271 {
pub payload: jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269, pub payload: jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269 { pub struct jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272 {
pub i32: __BindgenUnionField<i32>, pub i32: __BindgenUnionField<i32>,
pub u32: __BindgenUnionField<u32>, pub u32: __BindgenUnionField<u32>,
pub why: __BindgenUnionField<JSWhyMagic>, pub why: __BindgenUnionField<JSWhyMagic>,
pub bindgen_union_field: u32, pub bindgen_union_field: u32,
} }
#[test] #[test]
fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269() { fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272() {
assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269>() assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272>()
, 4usize); , 4usize);
assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269>() assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272>()
, 4usize); , 4usize);
} }
impl Clone for impl Clone for
jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269 { jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61268() { fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61271() {
assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61268>() assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61271>()
, 4usize); , 4usize);
assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61268>() assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61271>()
, 4usize); , 4usize);
} }
impl Clone for jsval_layout__bindgen_ty_bindgen_id_61268 { impl Clone for jsval_layout__bindgen_ty_bindgen_id_61271 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
impl Clone for jsval_layout { impl Clone for jsval_layout {
@ -1615,7 +1620,7 @@ pub type nsAString_internal_size_type = u32;
pub type nsAString_internal_index_type = u32; pub type nsAString_internal_index_type = u32;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsAString_internal__bindgen_ty_bindgen_id_63106 { pub enum nsAString_internal__bindgen_ty_bindgen_id_63109 {
F_NONE = 0, F_NONE = 0,
F_TERMINATED = 1, F_TERMINATED = 1,
F_VOIDED = 2, F_VOIDED = 2,
@ -1677,12 +1682,12 @@ fn bindgen_test_layout_nsString() {
assert_eq!(::std::mem::align_of::<nsString>() , 8usize); assert_eq!(::std::mem::align_of::<nsString>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_63716 { pub struct bindgen_vtable__bindgen_id_63719 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStringComparator { pub struct nsStringComparator {
pub vtable_: *const bindgen_vtable__bindgen_id_63716, pub vtable_: *const bindgen_vtable__bindgen_id_63719,
} }
pub type nsStringComparator_char_type = u16; pub type nsStringComparator_char_type = u16;
#[test] #[test]
@ -1724,7 +1729,7 @@ pub type nsACString_internal_size_type = u32;
pub type nsACString_internal_index_type = u32; pub type nsACString_internal_index_type = u32;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsACString_internal__bindgen_ty_bindgen_id_64946 { pub enum nsACString_internal__bindgen_ty_bindgen_id_64949 {
F_NONE = 0, F_NONE = 0,
F_TERMINATED = 1, F_TERMINATED = 1,
F_VOIDED = 2, F_VOIDED = 2,
@ -1786,12 +1791,12 @@ fn bindgen_test_layout_nsCString() {
assert_eq!(::std::mem::align_of::<nsCString>() , 8usize); assert_eq!(::std::mem::align_of::<nsCString>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_65498 { pub struct bindgen_vtable__bindgen_id_65501 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsCStringComparator { pub struct nsCStringComparator {
pub vtable_: *const bindgen_vtable__bindgen_id_65498, pub vtable_: *const bindgen_vtable__bindgen_id_65501,
} }
pub type nsCStringComparator_char_type = ::std::os::raw::c_char; pub type nsCStringComparator_char_type = ::std::os::raw::c_char;
#[test] #[test]
@ -1803,7 +1808,7 @@ impl Clone for nsCStringComparator {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_65542 { pub struct bindgen_vtable__bindgen_id_65545 {
} }
/** /**
* Basic component object model interface. Objects which implement * Basic component object model interface. Objects which implement
@ -1814,7 +1819,7 @@ pub struct bindgen_vtable__bindgen_id_65542 {
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsISupports { pub struct nsISupports {
pub vtable_: *const bindgen_vtable__bindgen_id_65542, pub vtable_: *const bindgen_vtable__bindgen_id_65545,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -1832,7 +1837,7 @@ impl Clone for nsISupports {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_65825 { pub struct bindgen_vtable__bindgen_id_65828 {
} }
/** /**
* Participant implementation classes * Participant implementation classes
@ -1840,7 +1845,7 @@ pub struct bindgen_vtable__bindgen_id_65825 {
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsCycleCollectionParticipant { pub struct nsCycleCollectionParticipant {
pub vtable_: *const bindgen_vtable__bindgen_id_65825, pub vtable_: *const bindgen_vtable__bindgen_id_65828,
pub mMightSkip: bool, pub mMightSkip: bool,
} }
#[test] #[test]
@ -2149,7 +2154,7 @@ fn bindgen_test_layout_ErrorResult() {
#[derive(Debug)] #[derive(Debug)]
pub struct TErrorResult<CleanupPolicy> { pub struct TErrorResult<CleanupPolicy> {
pub mResult: nsresult, pub mResult: nsresult,
pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_73318<CleanupPolicy>, pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_73321<CleanupPolicy>,
pub mMightHaveUnreportedJSException: bool, pub mMightHaveUnreportedJSException: bool,
pub mUnionState: TErrorResult_UnionState, pub mUnionState: TErrorResult_UnionState,
pub _mOwningThread: nsAutoOwningThread, pub _mOwningThread: nsAutoOwningThread,
@ -2179,7 +2184,7 @@ pub struct TErrorResult_DOMExceptionInfo<CleanupPolicy> {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct TErrorResult__bindgen_ty_bindgen_id_73318<CleanupPolicy> { pub struct TErrorResult__bindgen_ty_bindgen_id_73321<CleanupPolicy> {
pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>, pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>,
pub mJSException: __BindgenUnionField<Value>, pub mJSException: __BindgenUnionField<Value>,
pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>, pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>,
@ -2326,7 +2331,7 @@ impl nsIAtom {
} }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_74305 { pub struct bindgen_vtable__bindgen_id_74308 {
} }
/** /**
* Class to store the wrapper for an object. This can only be used with objects * Class to store the wrapper for an object. This can only be used with objects
@ -2368,7 +2373,7 @@ pub struct bindgen_vtable__bindgen_id_74305 {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsWrapperCache { pub struct nsWrapperCache {
pub vtable_: *const bindgen_vtable__bindgen_id_74305, pub vtable_: *const bindgen_vtable__bindgen_id_74308,
pub mWrapper: *mut JSObject, pub mWrapper: *mut JSObject,
pub mFlags: nsWrapperCache_FlagsType, pub mFlags: nsWrapperCache_FlagsType,
} }
@ -2393,7 +2398,7 @@ pub type nsWrapperCache_FlagsType = u32;
* NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER). * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER).
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsWrapperCache__bindgen_ty_bindgen_id_74512 { pub enum nsWrapperCache__bindgen_ty_bindgen_id_74515 {
WRAPPER_BIT_PRESERVED = 1, WRAPPER_BIT_PRESERVED = 1,
} }
#[repr(u32)] #[repr(u32)]
@ -2402,12 +2407,12 @@ pub enum nsWrapperCache__bindgen_ty_bindgen_id_74512 {
* binding. * binding.
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsWrapperCache__bindgen_ty_bindgen_id_74515 { pub enum nsWrapperCache__bindgen_ty_bindgen_id_74518 {
WRAPPER_IS_NOT_DOM_BINDING = 2, WRAPPER_IS_NOT_DOM_BINDING = 2,
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsWrapperCache__bindgen_ty_bindgen_id_74518 { pub enum nsWrapperCache__bindgen_ty_bindgen_id_74521 {
kWrapperFlagsMask = 3, kWrapperFlagsMask = 3,
} }
#[test] #[test]
@ -2481,7 +2486,7 @@ impl Clone for random_access_iterator_tag {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_93421 { pub struct bindgen_vtable__bindgen_id_93424 {
} }
/** /**
* A class of objects that return source code on demand. * A class of objects that return source code on demand.
@ -2497,7 +2502,7 @@ pub struct bindgen_vtable__bindgen_id_93421 {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct SourceHook { pub struct SourceHook {
pub vtable_: *const bindgen_vtable__bindgen_id_93421, pub vtable_: *const bindgen_vtable__bindgen_id_93424,
} }
#[test] #[test]
fn bindgen_test_layout_SourceHook() { fn bindgen_test_layout_SourceHook() {
@ -2717,7 +2722,7 @@ pub type nsPtrHashKey_KeyType<T> = *mut T;
pub type nsPtrHashKey_KeyTypePointer<T> = *mut T; pub type nsPtrHashKey_KeyTypePointer<T> = *mut T;
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsPtrHashKey__bindgen_ty_bindgen_id_104411 { ALLOW_MEMMOVE = 0, } pub enum nsPtrHashKey__bindgen_ty_bindgen_id_104414 { ALLOW_MEMMOVE = 0, }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsIRunnable { pub struct nsIRunnable {
@ -2752,7 +2757,7 @@ pub struct nsIPrincipal_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPrincipal__bindgen_ty_bindgen_id_106453 { pub enum nsIPrincipal__bindgen_ty_bindgen_id_106456 {
APP_STATUS_NOT_INSTALLED = 0, APP_STATUS_NOT_INSTALLED = 0,
APP_STATUS_INSTALLED = 1, APP_STATUS_INSTALLED = 1,
APP_STATUS_PRIVILEGED = 2, APP_STATUS_PRIVILEGED = 2,
@ -3075,7 +3080,7 @@ pub type nsIDocument_FrameRequestCallbackList =
nsTArray<RefPtr<FrameRequestCallback>>; nsTArray<RefPtr<FrameRequestCallback>>;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDocument__bindgen_ty_bindgen_id_115177 { REQUEST_DISCARD = 1, } pub enum nsIDocument__bindgen_ty_bindgen_id_115186 { REQUEST_DISCARD = 1, }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDocument_DeprecatedOperations { pub enum nsIDocument_DeprecatedOperations {
@ -3766,10 +3771,9 @@ pub struct nsINode {
pub mNextSibling: *mut nsIContent, pub mNextSibling: *mut nsIContent,
pub mPreviousSibling: *mut nsIContent, pub mPreviousSibling: *mut nsIContent,
pub mFirstChild: *mut nsIContent, pub mFirstChild: *mut nsIContent,
pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_111865, pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_111874,
pub mSlots: *mut nsINode_nsSlots, pub mSlots: *mut nsINode_nsSlots,
pub mServoNodeData: UniquePtr<ServoNodeData, pub mServoData: ServoCell<*mut ServoNodeData>,
DefaultDelete<ServoNodeData>>,
} }
pub type nsINode_BoxQuadOptions = BoxQuadOptions; pub type nsINode_BoxQuadOptions = BoxQuadOptions;
pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions; pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions;
@ -3792,7 +3796,7 @@ pub struct nsINode_COMTypeInfo<T, U> {
* Bit-flags to pass (or'ed together) to IsNodeOfType() * Bit-flags to pass (or'ed together) to IsNodeOfType()
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsINode__bindgen_ty_bindgen_id_107996 { pub enum nsINode__bindgen_ty_bindgen_id_107999 {
eCONTENT = 1, eCONTENT = 1,
eDOCUMENT = 2, eDOCUMENT = 2,
eATTRIBUTE = 4, eATTRIBUTE = 4,
@ -3807,12 +3811,12 @@ pub enum nsINode__bindgen_ty_bindgen_id_107996 {
eFILTER = 2048, eFILTER = 2048,
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_108765 { pub struct bindgen_vtable__bindgen_id_108768 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsINode_nsSlots { pub struct nsINode_nsSlots {
pub vtable_: *const bindgen_vtable__bindgen_id_108765, pub vtable_: *const bindgen_vtable__bindgen_id_108768,
/** /**
* A list of mutation observers * A list of mutation observers
*/ */
@ -3881,19 +3885,19 @@ pub enum nsINode_BooleanFlag {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsINode__bindgen_ty_bindgen_id_111865 { pub struct nsINode__bindgen_ty_bindgen_id_111874 {
pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>, pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>,
pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>, pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_111865() { fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_111874() {
assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_111865>() assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_111874>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_111865>() assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_111874>()
, 8usize); , 8usize);
} }
impl Clone for nsINode__bindgen_ty_bindgen_id_111865 { impl Clone for nsINode__bindgen_ty_bindgen_id_111874 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -4223,7 +4227,7 @@ pub struct nsIDOMNode_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDOMNode__bindgen_ty_bindgen_id_120015 { pub enum nsIDOMNode__bindgen_ty_bindgen_id_120024 {
ELEMENT_NODE = 1, ELEMENT_NODE = 1,
ATTRIBUTE_NODE = 2, ATTRIBUTE_NODE = 2,
TEXT_NODE = 3, TEXT_NODE = 3,
@ -4239,7 +4243,7 @@ pub enum nsIDOMNode__bindgen_ty_bindgen_id_120015 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDOMNode__bindgen_ty_bindgen_id_120234 { pub enum nsIDOMNode__bindgen_ty_bindgen_id_120243 {
DOCUMENT_POSITION_DISCONNECTED = 1, DOCUMENT_POSITION_DISCONNECTED = 1,
DOCUMENT_POSITION_PRECEDING = 2, DOCUMENT_POSITION_PRECEDING = 2,
DOCUMENT_POSITION_FOLLOWING = 4, DOCUMENT_POSITION_FOLLOWING = 4,
@ -5113,14 +5117,14 @@ pub struct nsIContent_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIContent__bindgen_ty_bindgen_id_124169 { pub enum nsIContent__bindgen_ty_bindgen_id_124178 {
eAllChildren = 0, eAllChildren = 0,
eAllButXBL = 1, eAllButXBL = 1,
eSkipPlaceholderContent = 2, eSkipPlaceholderContent = 2,
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIContent__bindgen_ty_bindgen_id_124405 { pub enum nsIContent__bindgen_ty_bindgen_id_124414 {
ATTR_MISSING = -1, ATTR_MISSING = -1,
ATTR_VALUE_NO_MATCH = -2, ATTR_VALUE_NO_MATCH = -2,
} }
@ -5326,7 +5330,7 @@ pub struct FragmentOrElement_nsDOMSlots {
* @see FragmentOrElement::GetAttributes * @see FragmentOrElement::GetAttributes
*/ */
pub mAttributeMap: RefPtr<nsDOMAttributeMap>, pub mAttributeMap: RefPtr<nsDOMAttributeMap>,
pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536, pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545,
/** /**
* An object implementing the .children property for this element. * An object implementing the .children property for this element.
*/ */
@ -5363,7 +5367,7 @@ pub struct FragmentOrElement_nsDOMSlots {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536 { pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545 {
/** /**
* The nearest enclosing content node with a binding that created us. * The nearest enclosing content node with a binding that created us.
* @see FragmentOrElement::GetBindingParent * @see FragmentOrElement::GetBindingParent
@ -5376,13 +5380,13 @@ pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536 {
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536() { fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545() {
assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536>() assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536>() assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545>()
, 8usize); , 8usize);
} }
impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536 { impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -5532,7 +5536,7 @@ pub struct nsIChannel_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIChannel__bindgen_ty_bindgen_id_137642 { pub enum nsIChannel__bindgen_ty_bindgen_id_137651 {
LOAD_DOCUMENT_URI = 65536, LOAD_DOCUMENT_URI = 65536,
LOAD_RETARGETED_DOCUMENT_URI = 131072, LOAD_RETARGETED_DOCUMENT_URI = 131072,
LOAD_REPLACE = 262144, LOAD_REPLACE = 262144,
@ -5546,7 +5550,7 @@ pub enum nsIChannel__bindgen_ty_bindgen_id_137642 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIChannel__bindgen_ty_bindgen_id_137662 { pub enum nsIChannel__bindgen_ty_bindgen_id_137671 {
DISPOSITION_INLINE = 0, DISPOSITION_INLINE = 0,
DISPOSITION_ATTACHMENT = 1, DISPOSITION_ATTACHMENT = 1,
} }
@ -5572,7 +5576,7 @@ pub struct nsIRequest_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIRequest__bindgen_ty_bindgen_id_137480 { pub enum nsIRequest__bindgen_ty_bindgen_id_137489 {
LOAD_REQUESTMASK = 65535, LOAD_REQUESTMASK = 65535,
LOAD_NORMAL = 0, LOAD_NORMAL = 0,
LOAD_BACKGROUND = 1, LOAD_BACKGROUND = 1,
@ -6127,13 +6131,13 @@ pub enum nsIPresShell_ReflowRootHandling {
eNoPositionOrSizeChange = 1, eNoPositionOrSizeChange = 1,
eInferFromBitToAdd = 2, eInferFromBitToAdd = 2,
} }
pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_155483 = pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_155504 =
nsIPresShell__bindgen_ty_bindgen_id_155483::SCROLL_TOP; nsIPresShell__bindgen_ty_bindgen_id_155504::SCROLL_TOP;
pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_155483 = pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_155504 =
nsIPresShell__bindgen_ty_bindgen_id_155483::SCROLL_BOTTOM; nsIPresShell__bindgen_ty_bindgen_id_155504::SCROLL_BOTTOM;
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_155483 { pub enum nsIPresShell__bindgen_ty_bindgen_id_155504 {
SCROLL_TOP = 0, SCROLL_TOP = 0,
SCROLL_BOTTOM = 100, SCROLL_BOTTOM = 100,
SCROLL_CENTER = 50, SCROLL_CENTER = 50,
@ -6161,7 +6165,7 @@ impl Clone for nsIPresShell_ScrollAxis {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_155514 { pub enum nsIPresShell__bindgen_ty_bindgen_id_155535 {
SCROLL_FIRST_ANCESTOR_ONLY = 1, SCROLL_FIRST_ANCESTOR_ONLY = 1,
SCROLL_OVERFLOW_HIDDEN = 2, SCROLL_OVERFLOW_HIDDEN = 2,
SCROLL_NO_PARENT_FRAMES = 4, SCROLL_NO_PARENT_FRAMES = 4,
@ -6208,7 +6212,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_155514 {
* transform. * transform.
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_155913 { pub enum nsIPresShell__bindgen_ty_bindgen_id_155934 {
RENDER_IS_UNTRUSTED = 1, RENDER_IS_UNTRUSTED = 1,
RENDER_IGNORE_VIEWPORT_SCROLLING = 2, RENDER_IGNORE_VIEWPORT_SCROLLING = 2,
RENDER_CARET = 4, RENDER_CARET = 4,
@ -6219,7 +6223,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_155913 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_155931 { pub enum nsIPresShell__bindgen_ty_bindgen_id_155952 {
RENDER_IS_IMAGE = 256, RENDER_IS_IMAGE = 256,
RENDER_AUTO_SCALE = 128, RENDER_AUTO_SCALE = 128,
} }
@ -6232,7 +6236,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_155931 {
* transparent by default. * transparent by default.
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_156054 { FORCE_DRAW = 1, } pub enum nsIPresShell__bindgen_ty_bindgen_id_156075 { FORCE_DRAW = 1, }
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsIPresShell_PointerCaptureInfo { pub struct nsIPresShell_PointerCaptureInfo {
@ -6505,14 +6509,6 @@ impl Clone for nsDOMMutationObserver {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct ServoNodeData {
pub _address: u8,
}
impl Clone for ServoNodeData {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct BoxQuadOptions { pub struct BoxQuadOptions {
pub _address: u8, pub _address: u8,
} }
@ -6627,67 +6623,67 @@ pub struct DOMPointInit {
impl Clone for DOMPointInit { impl Clone for DOMPointInit {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_LISTENERMANAGER; _bindgen_ty_bindgen_id_157496::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_PROPERTIES; _bindgen_ty_bindgen_id_157496::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_IS_ANONYMOUS_ROOT; _bindgen_ty_bindgen_id_157496::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; _bindgen_ty_bindgen_id_157496::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_IS_NATIVE_ANONYMOUS_ROOT; _bindgen_ty_bindgen_id_157496::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_157482 = pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_FORCE_XBL_BINDINGS; _bindgen_ty_bindgen_id_157496::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_157482 = pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_MAY_BE_IN_BINDING_MNGR; _bindgen_ty_bindgen_id_157496::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_IS_EDITABLE; _bindgen_ty_bindgen_id_157496::NODE_IS_EDITABLE;
pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_157482 = pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_MAY_HAVE_CLASS; _bindgen_ty_bindgen_id_157496::NODE_MAY_HAVE_CLASS;
pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_IS_IN_SHADOW_TREE; _bindgen_ty_bindgen_id_157496::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_EMPTY_SELECTOR; _bindgen_ty_bindgen_id_157496::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_SLOW_SELECTOR; _bindgen_ty_bindgen_id_157496::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_EDGE_CHILD_SELECTOR; _bindgen_ty_bindgen_id_157496::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_157482 pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_157496
= =
_bindgen_ty_bindgen_id_157482::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; _bindgen_ty_bindgen_id_157496::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_157482 = pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_ALL_SELECTOR_FLAGS; _bindgen_ty_bindgen_id_157496::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_157482 = pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_NEEDS_FRAME; _bindgen_ty_bindgen_id_157496::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_157482 = pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_DESCENDANTS_NEED_FRAMES; _bindgen_ty_bindgen_id_157496::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_ACCESSKEY; _bindgen_ty_bindgen_id_157496::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_DIRECTION_RTL; _bindgen_ty_bindgen_id_157496::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_157482 = pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_HAS_DIRECTION_LTR; _bindgen_ty_bindgen_id_157496::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_157482 = pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_ALL_DIRECTION_FLAGS; _bindgen_ty_bindgen_id_157496::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157482 = pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_CHROME_ONLY_ACCESS; _bindgen_ty_bindgen_id_157496::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; _bindgen_ty_bindgen_id_157496::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_157482 = pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_157482 = pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_157482 = pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_157482 pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_157496
= =
_bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_157482 = pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_157496 =
_bindgen_ty_bindgen_id_157482::NODE_TYPE_SPECIFIC_BITS_OFFSET; _bindgen_ty_bindgen_id_157496::NODE_TYPE_SPECIFIC_BITS_OFFSET;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_bindgen_id_157482 { pub enum _bindgen_ty_bindgen_id_157496 {
NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_LISTENERMANAGER = 4,
NODE_HAS_PROPERTIES = 8, NODE_HAS_PROPERTIES = 8,
NODE_IS_ANONYMOUS_ROOT = 16, NODE_IS_ANONYMOUS_ROOT = 16,
@ -6745,7 +6741,7 @@ pub struct nsITimer_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsITimer__bindgen_ty_bindgen_id_174050 { pub enum nsITimer__bindgen_ty_bindgen_id_174064 {
TYPE_ONE_SHOT = 0, TYPE_ONE_SHOT = 0,
TYPE_REPEATING_SLACK = 1, TYPE_REPEATING_SLACK = 1,
TYPE_REPEATING_PRECISE = 2, TYPE_REPEATING_PRECISE = 2,
@ -6771,7 +6767,7 @@ pub struct nsExpirationState {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsExpirationState__bindgen_ty_bindgen_id_174526 { pub enum nsExpirationState__bindgen_ty_bindgen_id_174540 {
NOT_TRACKED = 15, NOT_TRACKED = 15,
MAX_INDEX_IN_GENERATION = 268435455, MAX_INDEX_IN_GENERATION = 268435455,
} }
@ -6845,7 +6841,7 @@ pub struct imgIRequest_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum imgIRequest__bindgen_ty_bindgen_id_175118 { pub enum imgIRequest__bindgen_ty_bindgen_id_175132 {
STATUS_NONE = 0, STATUS_NONE = 0,
STATUS_SIZE_AVAILABLE = 1, STATUS_SIZE_AVAILABLE = 1,
STATUS_LOAD_COMPLETE = 2, STATUS_LOAD_COMPLETE = 2,
@ -6857,7 +6853,7 @@ pub enum imgIRequest__bindgen_ty_bindgen_id_175118 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum imgIRequest__bindgen_ty_bindgen_id_175198 { pub enum imgIRequest__bindgen_ty_bindgen_id_175212 {
CORS_NONE = 1, CORS_NONE = 1,
CORS_ANONYMOUS = 2, CORS_ANONYMOUS = 2,
CORS_USE_CREDENTIALS = 3, CORS_USE_CREDENTIALS = 3,
@ -7366,7 +7362,7 @@ pub type nsPresArena_FreeList_KeyType = u32;
pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void; pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_187754 { pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_187768 {
ALLOW_MEMMOVE = 0, ALLOW_MEMMOVE = 0,
} }
#[test] #[test]
@ -7393,7 +7389,7 @@ pub struct imgINotificationObserver_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum imgINotificationObserver__bindgen_ty_bindgen_id_187901 { pub enum imgINotificationObserver__bindgen_ty_bindgen_id_187915 {
SIZE_AVAILABLE = 1, SIZE_AVAILABLE = 1,
FRAME_UPDATE = 2, FRAME_UPDATE = 2,
FRAME_COMPLETE = 3, FRAME_COMPLETE = 3,
@ -7642,7 +7638,7 @@ pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer =
*const gfxFontFeatureValueSet_FeatureValueHashKey; *const gfxFontFeatureValueSet_FeatureValueHashKey;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_189155 pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_189169
{ {
ALLOW_MEMMOVE = 1, ALLOW_MEMMOVE = 1,
} }
@ -8038,23 +8034,23 @@ pub enum nsStyleUnit {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct _bindgen_ty_bindgen_id_189908 { pub struct _bindgen_ty_bindgen_id_189922 {
pub mInt: __BindgenUnionField<i32>, pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>, pub mFloat: __BindgenUnionField<f32>,
pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout__bindgen_ty_bindgen_id_189908() { fn bindgen_test_layout__bindgen_ty_bindgen_id_189922() {
assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_189908>() , assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_189922>() ,
8usize); 8usize);
assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_189908>() , assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_189922>() ,
8usize); 8usize);
} }
impl Clone for _bindgen_ty_bindgen_id_189908 { impl Clone for _bindgen_ty_bindgen_id_189922 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
pub type nsStyleUnion = _bindgen_ty_bindgen_id_189908; pub type nsStyleUnion = _bindgen_ty_bindgen_id_189922;
/** /**
* Class that hold a single size specification used by the style * Class that hold a single size specification used by the style
* system. The size specification consists of two parts -- a number * system. The size specification consists of two parts -- a number
@ -9100,7 +9096,7 @@ fn bindgen_test_layout_imgRequestProxy() {
assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize); assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_199319 { pub struct bindgen_vtable__bindgen_id_199333 {
} }
/** /**
* An interface for observing changes to image state, as reported by * An interface for observing changes to image state, as reported by
@ -9117,7 +9113,7 @@ pub struct bindgen_vtable__bindgen_id_199319 {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct IProgressObserver { pub struct IProgressObserver {
pub vtable_: *const bindgen_vtable__bindgen_id_199319, pub vtable_: *const bindgen_vtable__bindgen_id_199333,
pub _base: u64, pub _base: u64,
} }
#[test] #[test]
@ -9139,7 +9135,7 @@ pub struct nsISupportsPriority_COMTypeInfo<T, U> {
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsISupportsPriority__bindgen_ty_bindgen_id_199400 { pub enum nsISupportsPriority__bindgen_ty_bindgen_id_199414 {
PRIORITY_HIGHEST = -20, PRIORITY_HIGHEST = -20,
PRIORITY_HIGH = -10, PRIORITY_HIGH = -10,
PRIORITY_NORMAL = 0, PRIORITY_NORMAL = 0,
@ -9574,7 +9570,7 @@ fn bindgen_test_layout_nsCSSValueFloatColor() {
#[derive(Debug)] #[derive(Debug)]
pub struct nsCSSValue { pub struct nsCSSValue {
pub mUnit: nsCSSUnit, pub mUnit: nsCSSUnit,
pub mValue: nsCSSValue__bindgen_ty_bindgen_id_202395, pub mValue: nsCSSValue__bindgen_ty_bindgen_id_202409,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
@ -9590,7 +9586,7 @@ fn bindgen_test_layout_nsCSSValue_Array() {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsCSSValue__bindgen_ty_bindgen_id_202395 { pub struct nsCSSValue__bindgen_ty_bindgen_id_202409 {
pub mInt: __BindgenUnionField<i32>, pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>, pub mFloat: __BindgenUnionField<f32>,
pub mString: __BindgenUnionField<*mut nsStringBuffer>, pub mString: __BindgenUnionField<*mut nsStringBuffer>,
@ -9615,13 +9611,13 @@ pub struct nsCSSValue__bindgen_ty_bindgen_id_202395 {
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_202395() { fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_202409() {
assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_202395>() assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_202409>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_202395>() assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_202409>()
, 8usize); , 8usize);
} }
impl Clone for nsCSSValue__bindgen_ty_bindgen_id_202395 { impl Clone for nsCSSValue__bindgen_ty_bindgen_id_202409 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -9642,12 +9638,12 @@ fn bindgen_test_layout_nsCSSValueGradientStop() {
assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize); assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_202603 { pub struct bindgen_vtable__bindgen_id_202617 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct CounterStyle { pub struct CounterStyle {
pub vtable_: *const bindgen_vtable__bindgen_id_202603, pub vtable_: *const bindgen_vtable__bindgen_id_202617,
pub mStyle: i32, pub mStyle: i32,
} }
#[test] #[test]
@ -9728,6 +9724,9 @@ fn bindgen_test_layout_nsStyleVisibility() {
assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize); assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize);
assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize); assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize);
} }
pub type RawGeckoNode = nsINode;
pub type RawGeckoElement = Element;
pub type RawGeckoDocument = nsIDocument;
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct FragmentOrURL { pub struct FragmentOrURL {
@ -9844,26 +9843,26 @@ pub struct nsStyleImage {
pub mCachedBIData: UniquePtr<CachedBorderImageData, pub mCachedBIData: UniquePtr<CachedBorderImageData,
DefaultDelete<CachedBorderImageData>>, DefaultDelete<CachedBorderImageData>>,
pub mType: nsStyleImageType, pub mType: nsStyleImageType,
pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_204560, pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_204585,
pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>, pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
pub mImageTracked: bool, pub mImageTracked: bool,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleImage__bindgen_ty_bindgen_id_204560 { pub struct nsStyleImage__bindgen_ty_bindgen_id_204585 {
pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mGradient: __BindgenUnionField<*mut nsStyleGradient>, pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
pub mElementId: __BindgenUnionField<*mut u16>, pub mElementId: __BindgenUnionField<*mut u16>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_204560() { fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_204585() {
assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_204560>() assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_204585>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_204560>() assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_204585>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleImage__bindgen_ty_bindgen_id_204560 { impl Clone for nsStyleImage__bindgen_ty_bindgen_id_204585 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -9914,7 +9913,7 @@ pub struct nsStyleImageLayers {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_204615 { pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_204640 {
shorthand = 0, shorthand = 0,
color = 1, color = 1,
image = 2, image = 2,
@ -10414,7 +10413,7 @@ impl Clone for nsStyleImageOrientation {
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction { pub struct nsTimingFunction {
pub mType: nsTimingFunction_Type, pub mType: nsTimingFunction_Type,
pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_206368, pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_206393,
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
@ -10433,56 +10432,56 @@ pub enum nsTimingFunction_Type {
pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction__bindgen_ty_bindgen_id_206368 { pub struct nsTimingFunction__bindgen_ty_bindgen_id_206393 {
pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369>, pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394>,
pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380>, pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405>,
pub bindgen_union_field: [u32; 4usize], pub bindgen_union_field: [u32; 4usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369 { pub struct nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394 {
pub mX1: f32, pub mX1: f32,
pub mY1: f32, pub mY1: f32,
pub mX2: f32, pub mX2: f32,
pub mY2: f32, pub mY2: f32,
} }
#[test] #[test]
fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369() { fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394() {
assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369>() assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394>()
, 16usize); , 16usize);
assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369>() assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394>()
, 4usize); , 4usize);
} }
impl Clone for impl Clone for
nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369 nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394
{ {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380 { pub struct nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405 {
pub mSteps: u32, pub mSteps: u32,
} }
#[test] #[test]
fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380() { fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405() {
assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380>() assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405>()
, 4usize); , 4usize);
assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380>() assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405>()
, 4usize); , 4usize);
} }
impl Clone for impl Clone for
nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380 nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405
{ {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206368() { fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206393() {
assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_206368>() assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_206393>()
, 16usize); , 16usize);
assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_206368>() assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_206393>()
, 4usize); , 4usize);
} }
impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_206368 { impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_206393 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -10543,13 +10542,13 @@ fn bindgen_test_layout_StyleBasicShape() {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct StyleShapeSource<ReferenceBox> { pub struct StyleShapeSource<ReferenceBox> {
pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_206751<ReferenceBox>, pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_206776<ReferenceBox>,
pub mType: StyleShapeSourceType, pub mType: StyleShapeSourceType,
pub mReferenceBox: ReferenceBox, pub mReferenceBox: ReferenceBox,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct StyleShapeSource__bindgen_ty_bindgen_id_206751<ReferenceBox> { pub struct StyleShapeSource__bindgen_ty_bindgen_id_206776<ReferenceBox> {
pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>, pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>,
pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
@ -10601,25 +10600,25 @@ pub enum nsStyleContentType {
#[derive(Debug)] #[derive(Debug)]
pub struct nsStyleContentData { pub struct nsStyleContentData {
pub mType: nsStyleContentType, pub mType: nsStyleContentType,
pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_206835, pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_206860,
pub mImageTracked: bool, pub mImageTracked: bool,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleContentData__bindgen_ty_bindgen_id_206835 { pub struct nsStyleContentData__bindgen_ty_bindgen_id_206860 {
pub mString: __BindgenUnionField<*mut u16>, pub mString: __BindgenUnionField<*mut u16>,
pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>, pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_206835() { fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_206860() {
assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_206835>() assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_206860>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_206835>() assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_206860>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_206835 { impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_206860 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -10744,25 +10743,25 @@ pub enum nsStyleSVGPaintType {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsStyleSVGPaint { pub struct nsStyleSVGPaint {
pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_207234, pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_207259,
pub mType: nsStyleSVGPaintType, pub mType: nsStyleSVGPaintType,
pub mFallbackColor: nscolor, pub mFallbackColor: nscolor,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_207234 { pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_207259 {
pub mColor: __BindgenUnionField<nscolor>, pub mColor: __BindgenUnionField<nscolor>,
pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>, pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_207234() { fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_207259() {
assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_207234>() assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_207259>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_207234>() assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_207259>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_207234 { impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_207259 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -10797,7 +10796,7 @@ pub struct nsStyleSVG {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsStyleSVG__bindgen_ty_bindgen_id_207411 { pub enum nsStyleSVG__bindgen_ty_bindgen_id_207436 {
FILL_OPACITY_SOURCE_MASK = 3, FILL_OPACITY_SOURCE_MASK = 3,
STROKE_OPACITY_SOURCE_MASK = 12, STROKE_OPACITY_SOURCE_MASK = 12,
STROKE_DASHARRAY_CONTEXT = 16, STROKE_DASHARRAY_CONTEXT = 16,
@ -10816,23 +10815,23 @@ fn bindgen_test_layout_nsStyleSVG() {
pub struct nsStyleFilter { pub struct nsStyleFilter {
pub mType: i32, pub mType: i32,
pub mFilterParameter: nsStyleCoord, pub mFilterParameter: nsStyleCoord,
pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_207477, pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_207502,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleFilter__bindgen_ty_bindgen_id_207477 { pub struct nsStyleFilter__bindgen_ty_bindgen_id_207502 {
pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_207477() { fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_207502() {
assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_207477>() assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_207502>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_207477>() assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_207502>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_207477 { impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_207502 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]

View file

@ -1,5 +1,10 @@
/* automatically generated by rust-bindgen */ /* automatically generated by rust-bindgen */
pub enum OpaqueStyleData {}
pub type ServoUnsafeCell<T> = ::std::cell::UnsafeCell<T>;
pub type ServoCell<T> = ::std::cell::Cell<T>;
pub type ServoNodeData = OpaqueStyleData;
#[derive(Debug)] #[derive(Debug)]
#[repr(C)] #[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
@ -1496,8 +1501,8 @@ pub enum JSWhyMagic {
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout { pub struct jsval_layout {
pub asBits: __BindgenUnionField<u64>, pub asBits: __BindgenUnionField<u64>,
pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_58982>, pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_58985>,
pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_58989>, pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_58992>,
pub asDouble: __BindgenUnionField<f64>, pub asDouble: __BindgenUnionField<f64>,
pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>,
pub asWord: __BindgenUnionField<usize>, pub asWord: __BindgenUnionField<usize>,
@ -1506,20 +1511,20 @@ pub struct jsval_layout {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout__bindgen_ty_bindgen_id_58982 { pub struct jsval_layout__bindgen_ty_bindgen_id_58985 {
pub _bitfield_1: u64, pub _bitfield_1: u64,
} }
#[test] #[test]
fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58982() { fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58985() {
assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_58982>() assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_58985>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_58982>() assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_58985>()
, 8usize); , 8usize);
} }
impl Clone for jsval_layout__bindgen_ty_bindgen_id_58982 { impl Clone for jsval_layout__bindgen_ty_bindgen_id_58985 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
impl jsval_layout__bindgen_ty_bindgen_id_58982 { impl jsval_layout__bindgen_ty_bindgen_id_58985 {
#[inline] #[inline]
pub fn payload47(&self) -> u64 { pub fn payload47(&self) -> u64 {
unsafe { unsafe {
@ -1552,36 +1557,36 @@ impl jsval_layout__bindgen_ty_bindgen_id_58982 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout__bindgen_ty_bindgen_id_58989 { pub struct jsval_layout__bindgen_ty_bindgen_id_58992 {
pub payload: jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990, pub payload: jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990 { pub struct jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993 {
pub i32: __BindgenUnionField<i32>, pub i32: __BindgenUnionField<i32>,
pub u32: __BindgenUnionField<u32>, pub u32: __BindgenUnionField<u32>,
pub why: __BindgenUnionField<JSWhyMagic>, pub why: __BindgenUnionField<JSWhyMagic>,
pub bindgen_union_field: u32, pub bindgen_union_field: u32,
} }
#[test] #[test]
fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990() { fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993() {
assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990>() assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993>()
, 4usize); , 4usize);
assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990>() assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993>()
, 4usize); , 4usize);
} }
impl Clone for impl Clone for
jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990 { jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58989() { fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58992() {
assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_58989>() assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_58992>()
, 4usize); , 4usize);
assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_58989>() assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_58992>()
, 4usize); , 4usize);
} }
impl Clone for jsval_layout__bindgen_ty_bindgen_id_58989 { impl Clone for jsval_layout__bindgen_ty_bindgen_id_58992 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
impl Clone for jsval_layout { impl Clone for jsval_layout {
@ -1615,7 +1620,7 @@ pub type nsAString_internal_size_type = u32;
pub type nsAString_internal_index_type = u32; pub type nsAString_internal_index_type = u32;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsAString_internal__bindgen_ty_bindgen_id_60814 { pub enum nsAString_internal__bindgen_ty_bindgen_id_60817 {
F_NONE = 0, F_NONE = 0,
F_TERMINATED = 1, F_TERMINATED = 1,
F_VOIDED = 2, F_VOIDED = 2,
@ -1677,12 +1682,12 @@ fn bindgen_test_layout_nsString() {
assert_eq!(::std::mem::align_of::<nsString>() , 8usize); assert_eq!(::std::mem::align_of::<nsString>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_61424 { pub struct bindgen_vtable__bindgen_id_61427 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStringComparator { pub struct nsStringComparator {
pub vtable_: *const bindgen_vtable__bindgen_id_61424, pub vtable_: *const bindgen_vtable__bindgen_id_61427,
} }
pub type nsStringComparator_char_type = u16; pub type nsStringComparator_char_type = u16;
#[test] #[test]
@ -1724,7 +1729,7 @@ pub type nsACString_internal_size_type = u32;
pub type nsACString_internal_index_type = u32; pub type nsACString_internal_index_type = u32;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsACString_internal__bindgen_ty_bindgen_id_62654 { pub enum nsACString_internal__bindgen_ty_bindgen_id_62657 {
F_NONE = 0, F_NONE = 0,
F_TERMINATED = 1, F_TERMINATED = 1,
F_VOIDED = 2, F_VOIDED = 2,
@ -1786,12 +1791,12 @@ fn bindgen_test_layout_nsCString() {
assert_eq!(::std::mem::align_of::<nsCString>() , 8usize); assert_eq!(::std::mem::align_of::<nsCString>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_63206 { pub struct bindgen_vtable__bindgen_id_63209 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsCStringComparator { pub struct nsCStringComparator {
pub vtable_: *const bindgen_vtable__bindgen_id_63206, pub vtable_: *const bindgen_vtable__bindgen_id_63209,
} }
pub type nsCStringComparator_char_type = ::std::os::raw::c_char; pub type nsCStringComparator_char_type = ::std::os::raw::c_char;
#[test] #[test]
@ -1803,7 +1808,7 @@ impl Clone for nsCStringComparator {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_63250 { pub struct bindgen_vtable__bindgen_id_63253 {
} }
/** /**
* Basic component object model interface. Objects which implement * Basic component object model interface. Objects which implement
@ -1814,7 +1819,7 @@ pub struct bindgen_vtable__bindgen_id_63250 {
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsISupports { pub struct nsISupports {
pub vtable_: *const bindgen_vtable__bindgen_id_63250, pub vtable_: *const bindgen_vtable__bindgen_id_63253,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
@ -1832,7 +1837,7 @@ impl Clone for nsISupports {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_63533 { pub struct bindgen_vtable__bindgen_id_63536 {
} }
/** /**
* Participant implementation classes * Participant implementation classes
@ -1840,7 +1845,7 @@ pub struct bindgen_vtable__bindgen_id_63533 {
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsCycleCollectionParticipant { pub struct nsCycleCollectionParticipant {
pub vtable_: *const bindgen_vtable__bindgen_id_63533, pub vtable_: *const bindgen_vtable__bindgen_id_63536,
pub mMightSkip: bool, pub mMightSkip: bool,
} }
#[test] #[test]
@ -2163,7 +2168,7 @@ fn bindgen_test_layout_ErrorResult() {
#[derive(Debug)] #[derive(Debug)]
pub struct TErrorResult<CleanupPolicy> { pub struct TErrorResult<CleanupPolicy> {
pub mResult: nsresult, pub mResult: nsresult,
pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_68153<CleanupPolicy>, pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_68156<CleanupPolicy>,
pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
} }
#[repr(C)] #[repr(C)]
@ -2180,7 +2185,7 @@ pub struct TErrorResult_DOMExceptionInfo<CleanupPolicy> {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct TErrorResult__bindgen_ty_bindgen_id_68153<CleanupPolicy> { pub struct TErrorResult__bindgen_ty_bindgen_id_68156<CleanupPolicy> {
pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>, pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>,
pub mJSException: __BindgenUnionField<Value>, pub mJSException: __BindgenUnionField<Value>,
pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>, pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>,
@ -2313,7 +2318,7 @@ impl nsIAtom {
} }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_68924 { pub struct bindgen_vtable__bindgen_id_68927 {
} }
/** /**
* Class to store the wrapper for an object. This can only be used with objects * Class to store the wrapper for an object. This can only be used with objects
@ -2355,7 +2360,7 @@ pub struct bindgen_vtable__bindgen_id_68924 {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsWrapperCache { pub struct nsWrapperCache {
pub vtable_: *const bindgen_vtable__bindgen_id_68924, pub vtable_: *const bindgen_vtable__bindgen_id_68927,
pub mWrapper: *mut JSObject, pub mWrapper: *mut JSObject,
pub mFlags: nsWrapperCache_FlagsType, pub mFlags: nsWrapperCache_FlagsType,
} }
@ -2380,7 +2385,7 @@ pub type nsWrapperCache_FlagsType = u32;
* NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER). * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER).
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsWrapperCache__bindgen_ty_bindgen_id_69120 { pub enum nsWrapperCache__bindgen_ty_bindgen_id_69123 {
WRAPPER_BIT_PRESERVED = 1, WRAPPER_BIT_PRESERVED = 1,
} }
#[repr(u32)] #[repr(u32)]
@ -2389,12 +2394,12 @@ pub enum nsWrapperCache__bindgen_ty_bindgen_id_69120 {
* binding. * binding.
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsWrapperCache__bindgen_ty_bindgen_id_69123 { pub enum nsWrapperCache__bindgen_ty_bindgen_id_69126 {
WRAPPER_IS_NOT_DOM_BINDING = 2, WRAPPER_IS_NOT_DOM_BINDING = 2,
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsWrapperCache__bindgen_ty_bindgen_id_69126 { pub enum nsWrapperCache__bindgen_ty_bindgen_id_69129 {
kWrapperFlagsMask = 3, kWrapperFlagsMask = 3,
} }
#[test] #[test]
@ -2468,7 +2473,7 @@ impl Clone for random_access_iterator_tag {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_87797 { pub struct bindgen_vtable__bindgen_id_87800 {
} }
/** /**
* A class of objects that return source code on demand. * A class of objects that return source code on demand.
@ -2484,7 +2489,7 @@ pub struct bindgen_vtable__bindgen_id_87797 {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct SourceHook { pub struct SourceHook {
pub vtable_: *const bindgen_vtable__bindgen_id_87797, pub vtable_: *const bindgen_vtable__bindgen_id_87800,
} }
#[test] #[test]
fn bindgen_test_layout_SourceHook() { fn bindgen_test_layout_SourceHook() {
@ -2673,7 +2678,7 @@ pub type nsPtrHashKey_KeyType<T> = *mut T;
pub type nsPtrHashKey_KeyTypePointer<T> = *mut T; pub type nsPtrHashKey_KeyTypePointer<T> = *mut T;
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsPtrHashKey__bindgen_ty_bindgen_id_98659 { ALLOW_MEMMOVE = 0, } pub enum nsPtrHashKey__bindgen_ty_bindgen_id_98662 { ALLOW_MEMMOVE = 0, }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsIRunnable { pub struct nsIRunnable {
@ -2708,7 +2713,7 @@ pub struct nsIPrincipal_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPrincipal__bindgen_ty_bindgen_id_100676 { pub enum nsIPrincipal__bindgen_ty_bindgen_id_100679 {
APP_STATUS_NOT_INSTALLED = 0, APP_STATUS_NOT_INSTALLED = 0,
APP_STATUS_INSTALLED = 1, APP_STATUS_INSTALLED = 1,
APP_STATUS_PRIVILEGED = 2, APP_STATUS_PRIVILEGED = 2,
@ -3026,7 +3031,7 @@ pub type nsIDocument_FrameRequestCallbackList =
nsTArray<RefPtr<FrameRequestCallback>>; nsTArray<RefPtr<FrameRequestCallback>>;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDocument__bindgen_ty_bindgen_id_109376 { REQUEST_DISCARD = 1, } pub enum nsIDocument__bindgen_ty_bindgen_id_109385 { REQUEST_DISCARD = 1, }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDocument_DeprecatedOperations { pub enum nsIDocument_DeprecatedOperations {
@ -3717,10 +3722,9 @@ pub struct nsINode {
pub mNextSibling: *mut nsIContent, pub mNextSibling: *mut nsIContent,
pub mPreviousSibling: *mut nsIContent, pub mPreviousSibling: *mut nsIContent,
pub mFirstChild: *mut nsIContent, pub mFirstChild: *mut nsIContent,
pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_106075, pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_106084,
pub mSlots: *mut nsINode_nsSlots, pub mSlots: *mut nsINode_nsSlots,
pub mServoNodeData: UniquePtr<ServoNodeData, pub mServoData: ServoCell<*mut ServoNodeData>,
DefaultDelete<ServoNodeData>>,
} }
pub type nsINode_BoxQuadOptions = BoxQuadOptions; pub type nsINode_BoxQuadOptions = BoxQuadOptions;
pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions; pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions;
@ -3743,7 +3747,7 @@ pub struct nsINode_COMTypeInfo<T, U> {
* Bit-flags to pass (or'ed together) to IsNodeOfType() * Bit-flags to pass (or'ed together) to IsNodeOfType()
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsINode__bindgen_ty_bindgen_id_102219 { pub enum nsINode__bindgen_ty_bindgen_id_102222 {
eCONTENT = 1, eCONTENT = 1,
eDOCUMENT = 2, eDOCUMENT = 2,
eATTRIBUTE = 4, eATTRIBUTE = 4,
@ -3758,12 +3762,12 @@ pub enum nsINode__bindgen_ty_bindgen_id_102219 {
eFILTER = 2048, eFILTER = 2048,
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_102988 { pub struct bindgen_vtable__bindgen_id_102991 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsINode_nsSlots { pub struct nsINode_nsSlots {
pub vtable_: *const bindgen_vtable__bindgen_id_102988, pub vtable_: *const bindgen_vtable__bindgen_id_102991,
/** /**
* A list of mutation observers * A list of mutation observers
*/ */
@ -3832,19 +3836,19 @@ pub enum nsINode_BooleanFlag {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsINode__bindgen_ty_bindgen_id_106075 { pub struct nsINode__bindgen_ty_bindgen_id_106084 {
pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>, pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>,
pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>, pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_106075() { fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_106084() {
assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_106075>() assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_106084>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_106075>() assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_106084>()
, 8usize); , 8usize);
} }
impl Clone for nsINode__bindgen_ty_bindgen_id_106075 { impl Clone for nsINode__bindgen_ty_bindgen_id_106084 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -4174,7 +4178,7 @@ pub struct nsIDOMNode_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDOMNode__bindgen_ty_bindgen_id_114360 { pub enum nsIDOMNode__bindgen_ty_bindgen_id_114369 {
ELEMENT_NODE = 1, ELEMENT_NODE = 1,
ATTRIBUTE_NODE = 2, ATTRIBUTE_NODE = 2,
TEXT_NODE = 3, TEXT_NODE = 3,
@ -4190,7 +4194,7 @@ pub enum nsIDOMNode__bindgen_ty_bindgen_id_114360 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIDOMNode__bindgen_ty_bindgen_id_114579 { pub enum nsIDOMNode__bindgen_ty_bindgen_id_114588 {
DOCUMENT_POSITION_DISCONNECTED = 1, DOCUMENT_POSITION_DISCONNECTED = 1,
DOCUMENT_POSITION_PRECEDING = 2, DOCUMENT_POSITION_PRECEDING = 2,
DOCUMENT_POSITION_FOLLOWING = 4, DOCUMENT_POSITION_FOLLOWING = 4,
@ -5061,14 +5065,14 @@ pub struct nsIContent_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIContent__bindgen_ty_bindgen_id_118470 { pub enum nsIContent__bindgen_ty_bindgen_id_118479 {
eAllChildren = 0, eAllChildren = 0,
eAllButXBL = 1, eAllButXBL = 1,
eSkipPlaceholderContent = 2, eSkipPlaceholderContent = 2,
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIContent__bindgen_ty_bindgen_id_118706 { pub enum nsIContent__bindgen_ty_bindgen_id_118715 {
ATTR_MISSING = -1, ATTR_MISSING = -1,
ATTR_VALUE_NO_MATCH = -2, ATTR_VALUE_NO_MATCH = -2,
} }
@ -5274,7 +5278,7 @@ pub struct FragmentOrElement_nsDOMSlots {
* @see FragmentOrElement::GetAttributes * @see FragmentOrElement::GetAttributes
*/ */
pub mAttributeMap: RefPtr<nsDOMAttributeMap>, pub mAttributeMap: RefPtr<nsDOMAttributeMap>,
pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801, pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810,
/** /**
* An object implementing the .children property for this element. * An object implementing the .children property for this element.
*/ */
@ -5311,7 +5315,7 @@ pub struct FragmentOrElement_nsDOMSlots {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801 { pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810 {
/** /**
* The nearest enclosing content node with a binding that created us. * The nearest enclosing content node with a binding that created us.
* @see FragmentOrElement::GetBindingParent * @see FragmentOrElement::GetBindingParent
@ -5324,13 +5328,13 @@ pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801 {
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801() { fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810() {
assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801>() assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801>() assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810>()
, 8usize); , 8usize);
} }
impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801 { impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -5480,7 +5484,7 @@ pub struct nsIChannel_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIChannel__bindgen_ty_bindgen_id_131594 { pub enum nsIChannel__bindgen_ty_bindgen_id_131603 {
LOAD_DOCUMENT_URI = 65536, LOAD_DOCUMENT_URI = 65536,
LOAD_RETARGETED_DOCUMENT_URI = 131072, LOAD_RETARGETED_DOCUMENT_URI = 131072,
LOAD_REPLACE = 262144, LOAD_REPLACE = 262144,
@ -5494,7 +5498,7 @@ pub enum nsIChannel__bindgen_ty_bindgen_id_131594 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIChannel__bindgen_ty_bindgen_id_131614 { pub enum nsIChannel__bindgen_ty_bindgen_id_131623 {
DISPOSITION_INLINE = 0, DISPOSITION_INLINE = 0,
DISPOSITION_ATTACHMENT = 1, DISPOSITION_ATTACHMENT = 1,
} }
@ -5520,7 +5524,7 @@ pub struct nsIRequest_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIRequest__bindgen_ty_bindgen_id_131432 { pub enum nsIRequest__bindgen_ty_bindgen_id_131441 {
LOAD_REQUESTMASK = 65535, LOAD_REQUESTMASK = 65535,
LOAD_NORMAL = 0, LOAD_NORMAL = 0,
LOAD_BACKGROUND = 1, LOAD_BACKGROUND = 1,
@ -6073,13 +6077,13 @@ pub enum nsIPresShell_ReflowRootHandling {
eNoPositionOrSizeChange = 1, eNoPositionOrSizeChange = 1,
eInferFromBitToAdd = 2, eInferFromBitToAdd = 2,
} }
pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_149423 = pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_149444 =
nsIPresShell__bindgen_ty_bindgen_id_149423::SCROLL_TOP; nsIPresShell__bindgen_ty_bindgen_id_149444::SCROLL_TOP;
pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_149423 = pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_149444 =
nsIPresShell__bindgen_ty_bindgen_id_149423::SCROLL_BOTTOM; nsIPresShell__bindgen_ty_bindgen_id_149444::SCROLL_BOTTOM;
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_149423 { pub enum nsIPresShell__bindgen_ty_bindgen_id_149444 {
SCROLL_TOP = 0, SCROLL_TOP = 0,
SCROLL_BOTTOM = 100, SCROLL_BOTTOM = 100,
SCROLL_CENTER = 50, SCROLL_CENTER = 50,
@ -6107,7 +6111,7 @@ impl Clone for nsIPresShell_ScrollAxis {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_149454 { pub enum nsIPresShell__bindgen_ty_bindgen_id_149475 {
SCROLL_FIRST_ANCESTOR_ONLY = 1, SCROLL_FIRST_ANCESTOR_ONLY = 1,
SCROLL_OVERFLOW_HIDDEN = 2, SCROLL_OVERFLOW_HIDDEN = 2,
SCROLL_NO_PARENT_FRAMES = 4, SCROLL_NO_PARENT_FRAMES = 4,
@ -6154,7 +6158,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_149454 {
* transform. * transform.
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_149822 { pub enum nsIPresShell__bindgen_ty_bindgen_id_149843 {
RENDER_IS_UNTRUSTED = 1, RENDER_IS_UNTRUSTED = 1,
RENDER_IGNORE_VIEWPORT_SCROLLING = 2, RENDER_IGNORE_VIEWPORT_SCROLLING = 2,
RENDER_CARET = 4, RENDER_CARET = 4,
@ -6165,7 +6169,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_149822 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_149840 { pub enum nsIPresShell__bindgen_ty_bindgen_id_149861 {
RENDER_IS_IMAGE = 256, RENDER_IS_IMAGE = 256,
RENDER_AUTO_SCALE = 128, RENDER_AUTO_SCALE = 128,
} }
@ -6178,7 +6182,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_149840 {
* transparent by default. * transparent by default.
*/ */
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsIPresShell__bindgen_ty_bindgen_id_149956 { FORCE_DRAW = 1, } pub enum nsIPresShell__bindgen_ty_bindgen_id_149977 { FORCE_DRAW = 1, }
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsIPresShell_PointerCaptureInfo { pub struct nsIPresShell_PointerCaptureInfo {
@ -6451,14 +6455,6 @@ impl Clone for nsDOMMutationObserver {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct ServoNodeData {
pub _address: u8,
}
impl Clone for ServoNodeData {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug, Copy)]
pub struct BoxQuadOptions { pub struct BoxQuadOptions {
pub _address: u8, pub _address: u8,
} }
@ -6573,67 +6569,67 @@ pub struct DOMPointInit {
impl Clone for DOMPointInit { impl Clone for DOMPointInit {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_LISTENERMANAGER; _bindgen_ty_bindgen_id_151372::NODE_HAS_LISTENERMANAGER;
pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_PROPERTIES; _bindgen_ty_bindgen_id_151372::NODE_HAS_PROPERTIES;
pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_IS_ANONYMOUS_ROOT; _bindgen_ty_bindgen_id_151372::NODE_IS_ANONYMOUS_ROOT;
pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; _bindgen_ty_bindgen_id_151372::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_IS_NATIVE_ANONYMOUS_ROOT; _bindgen_ty_bindgen_id_151372::NODE_IS_NATIVE_ANONYMOUS_ROOT;
pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_151358 = pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_FORCE_XBL_BINDINGS; _bindgen_ty_bindgen_id_151372::NODE_FORCE_XBL_BINDINGS;
pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_151358 = pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_MAY_BE_IN_BINDING_MNGR; _bindgen_ty_bindgen_id_151372::NODE_MAY_BE_IN_BINDING_MNGR;
pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_IS_EDITABLE; _bindgen_ty_bindgen_id_151372::NODE_IS_EDITABLE;
pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_151358 = pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_MAY_HAVE_CLASS; _bindgen_ty_bindgen_id_151372::NODE_MAY_HAVE_CLASS;
pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_IS_IN_SHADOW_TREE; _bindgen_ty_bindgen_id_151372::NODE_IS_IN_SHADOW_TREE;
pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_EMPTY_SELECTOR; _bindgen_ty_bindgen_id_151372::NODE_HAS_EMPTY_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_SLOW_SELECTOR; _bindgen_ty_bindgen_id_151372::NODE_HAS_SLOW_SELECTOR;
pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_EDGE_CHILD_SELECTOR; _bindgen_ty_bindgen_id_151372::NODE_HAS_EDGE_CHILD_SELECTOR;
pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_151358 pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_151372
= =
_bindgen_ty_bindgen_id_151358::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; _bindgen_ty_bindgen_id_151372::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_151358 = pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_ALL_SELECTOR_FLAGS; _bindgen_ty_bindgen_id_151372::NODE_ALL_SELECTOR_FLAGS;
pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_151358 = pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_NEEDS_FRAME; _bindgen_ty_bindgen_id_151372::NODE_NEEDS_FRAME;
pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_151358 = pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_DESCENDANTS_NEED_FRAMES; _bindgen_ty_bindgen_id_151372::NODE_DESCENDANTS_NEED_FRAMES;
pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_ACCESSKEY; _bindgen_ty_bindgen_id_151372::NODE_HAS_ACCESSKEY;
pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_DIRECTION_RTL; _bindgen_ty_bindgen_id_151372::NODE_HAS_DIRECTION_RTL;
pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_151358 = pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_HAS_DIRECTION_LTR; _bindgen_ty_bindgen_id_151372::NODE_HAS_DIRECTION_LTR;
pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_151358 = pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_ALL_DIRECTION_FLAGS; _bindgen_ty_bindgen_id_151372::NODE_ALL_DIRECTION_FLAGS;
pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151358 = pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_CHROME_ONLY_ACCESS; _bindgen_ty_bindgen_id_151372::NODE_CHROME_ONLY_ACCESS;
pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; _bindgen_ty_bindgen_id_151372::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_151358 = pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_151358 = pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_151358 = pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_1; _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_1;
pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_151358 pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_151372
= =
_bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_2; _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_2;
pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_151358 = pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_151372 =
_bindgen_ty_bindgen_id_151358::NODE_TYPE_SPECIFIC_BITS_OFFSET; _bindgen_ty_bindgen_id_151372::NODE_TYPE_SPECIFIC_BITS_OFFSET;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum _bindgen_ty_bindgen_id_151358 { pub enum _bindgen_ty_bindgen_id_151372 {
NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_LISTENERMANAGER = 4,
NODE_HAS_PROPERTIES = 8, NODE_HAS_PROPERTIES = 8,
NODE_IS_ANONYMOUS_ROOT = 16, NODE_IS_ANONYMOUS_ROOT = 16,
@ -6691,7 +6687,7 @@ pub struct nsITimer_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsITimer__bindgen_ty_bindgen_id_168071 { pub enum nsITimer__bindgen_ty_bindgen_id_168085 {
TYPE_ONE_SHOT = 0, TYPE_ONE_SHOT = 0,
TYPE_REPEATING_SLACK = 1, TYPE_REPEATING_SLACK = 1,
TYPE_REPEATING_PRECISE = 2, TYPE_REPEATING_PRECISE = 2,
@ -6717,7 +6713,7 @@ pub struct nsExpirationState {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsExpirationState__bindgen_ty_bindgen_id_168547 { pub enum nsExpirationState__bindgen_ty_bindgen_id_168561 {
NOT_TRACKED = 15, NOT_TRACKED = 15,
MAX_INDEX_IN_GENERATION = 268435455, MAX_INDEX_IN_GENERATION = 268435455,
} }
@ -6791,7 +6787,7 @@ pub struct imgIRequest_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum imgIRequest__bindgen_ty_bindgen_id_169139 { pub enum imgIRequest__bindgen_ty_bindgen_id_169153 {
STATUS_NONE = 0, STATUS_NONE = 0,
STATUS_SIZE_AVAILABLE = 1, STATUS_SIZE_AVAILABLE = 1,
STATUS_LOAD_COMPLETE = 2, STATUS_LOAD_COMPLETE = 2,
@ -6803,7 +6799,7 @@ pub enum imgIRequest__bindgen_ty_bindgen_id_169139 {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum imgIRequest__bindgen_ty_bindgen_id_169219 { pub enum imgIRequest__bindgen_ty_bindgen_id_169233 {
CORS_NONE = 1, CORS_NONE = 1,
CORS_ANONYMOUS = 2, CORS_ANONYMOUS = 2,
CORS_USE_CREDENTIALS = 3, CORS_USE_CREDENTIALS = 3,
@ -7312,7 +7308,7 @@ pub type nsPresArena_FreeList_KeyType = u32;
pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void; pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_181697 { pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_181711 {
ALLOW_MEMMOVE = 0, ALLOW_MEMMOVE = 0,
} }
#[test] #[test]
@ -7339,7 +7335,7 @@ pub struct imgINotificationObserver_COMTypeInfo<T, U> {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum imgINotificationObserver__bindgen_ty_bindgen_id_181844 { pub enum imgINotificationObserver__bindgen_ty_bindgen_id_181858 {
SIZE_AVAILABLE = 1, SIZE_AVAILABLE = 1,
FRAME_UPDATE = 2, FRAME_UPDATE = 2,
FRAME_COMPLETE = 3, FRAME_COMPLETE = 3,
@ -7588,7 +7584,7 @@ pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer =
*const gfxFontFeatureValueSet_FeatureValueHashKey; *const gfxFontFeatureValueSet_FeatureValueHashKey;
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_183082 pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_183096
{ {
ALLOW_MEMMOVE = 1, ALLOW_MEMMOVE = 1,
} }
@ -7984,23 +7980,23 @@ pub enum nsStyleUnit {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct _bindgen_ty_bindgen_id_183835 { pub struct _bindgen_ty_bindgen_id_183849 {
pub mInt: __BindgenUnionField<i32>, pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>, pub mFloat: __BindgenUnionField<f32>,
pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout__bindgen_ty_bindgen_id_183835() { fn bindgen_test_layout__bindgen_ty_bindgen_id_183849() {
assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_183835>() , assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_183849>() ,
8usize); 8usize);
assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_183835>() , assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_183849>() ,
8usize); 8usize);
} }
impl Clone for _bindgen_ty_bindgen_id_183835 { impl Clone for _bindgen_ty_bindgen_id_183849 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
pub type nsStyleUnion = _bindgen_ty_bindgen_id_183835; pub type nsStyleUnion = _bindgen_ty_bindgen_id_183849;
/** /**
* Class that hold a single size specification used by the style * Class that hold a single size specification used by the style
* system. The size specification consists of two parts -- a number * system. The size specification consists of two parts -- a number
@ -9046,7 +9042,7 @@ fn bindgen_test_layout_imgRequestProxy() {
assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize); assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_193191 { pub struct bindgen_vtable__bindgen_id_193205 {
} }
/** /**
* An interface for observing changes to image state, as reported by * An interface for observing changes to image state, as reported by
@ -9063,7 +9059,7 @@ pub struct bindgen_vtable__bindgen_id_193191 {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct IProgressObserver { pub struct IProgressObserver {
pub vtable_: *const bindgen_vtable__bindgen_id_193191, pub vtable_: *const bindgen_vtable__bindgen_id_193205,
pub _base: u64, pub _base: u64,
} }
#[test] #[test]
@ -9085,7 +9081,7 @@ pub struct nsISupportsPriority_COMTypeInfo<T, U> {
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsISupportsPriority__bindgen_ty_bindgen_id_193267 { pub enum nsISupportsPriority__bindgen_ty_bindgen_id_193281 {
PRIORITY_HIGHEST = -20, PRIORITY_HIGHEST = -20,
PRIORITY_HIGH = -10, PRIORITY_HIGH = -10,
PRIORITY_NORMAL = 0, PRIORITY_NORMAL = 0,
@ -9520,7 +9516,7 @@ fn bindgen_test_layout_nsCSSValueFloatColor() {
#[derive(Debug)] #[derive(Debug)]
pub struct nsCSSValue { pub struct nsCSSValue {
pub mUnit: nsCSSUnit, pub mUnit: nsCSSUnit,
pub mValue: nsCSSValue__bindgen_ty_bindgen_id_196262, pub mValue: nsCSSValue__bindgen_ty_bindgen_id_196276,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
@ -9536,7 +9532,7 @@ fn bindgen_test_layout_nsCSSValue_Array() {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsCSSValue__bindgen_ty_bindgen_id_196262 { pub struct nsCSSValue__bindgen_ty_bindgen_id_196276 {
pub mInt: __BindgenUnionField<i32>, pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>, pub mFloat: __BindgenUnionField<f32>,
pub mString: __BindgenUnionField<*mut nsStringBuffer>, pub mString: __BindgenUnionField<*mut nsStringBuffer>,
@ -9561,13 +9557,13 @@ pub struct nsCSSValue__bindgen_ty_bindgen_id_196262 {
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_196262() { fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_196276() {
assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_196262>() assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_196276>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_196262>() assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_196276>()
, 8usize); , 8usize);
} }
impl Clone for nsCSSValue__bindgen_ty_bindgen_id_196262 { impl Clone for nsCSSValue__bindgen_ty_bindgen_id_196276 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -9588,12 +9584,12 @@ fn bindgen_test_layout_nsCSSValueGradientStop() {
assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize); assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize);
} }
#[repr(C)] #[repr(C)]
pub struct bindgen_vtable__bindgen_id_196470 { pub struct bindgen_vtable__bindgen_id_196484 {
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct CounterStyle { pub struct CounterStyle {
pub vtable_: *const bindgen_vtable__bindgen_id_196470, pub vtable_: *const bindgen_vtable__bindgen_id_196484,
pub mStyle: i32, pub mStyle: i32,
} }
#[test] #[test]
@ -9674,6 +9670,9 @@ fn bindgen_test_layout_nsStyleVisibility() {
assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize); assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize);
assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize); assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize);
} }
pub type RawGeckoNode = nsINode;
pub type RawGeckoElement = Element;
pub type RawGeckoDocument = nsIDocument;
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct FragmentOrURL { pub struct FragmentOrURL {
@ -9790,25 +9789,25 @@ pub struct nsStyleImage {
pub mCachedBIData: UniquePtr<CachedBorderImageData, pub mCachedBIData: UniquePtr<CachedBorderImageData,
DefaultDelete<CachedBorderImageData>>, DefaultDelete<CachedBorderImageData>>,
pub mType: nsStyleImageType, pub mType: nsStyleImageType,
pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_198427, pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_198452,
pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>, pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleImage__bindgen_ty_bindgen_id_198427 { pub struct nsStyleImage__bindgen_ty_bindgen_id_198452 {
pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mGradient: __BindgenUnionField<*mut nsStyleGradient>, pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
pub mElementId: __BindgenUnionField<*mut u16>, pub mElementId: __BindgenUnionField<*mut u16>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_198427() { fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_198452() {
assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_198427>() assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_198452>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_198427>() assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_198452>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleImage__bindgen_ty_bindgen_id_198427 { impl Clone for nsStyleImage__bindgen_ty_bindgen_id_198452 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -9859,7 +9858,7 @@ pub struct nsStyleImageLayers {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_198480 { pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_198505 {
shorthand = 0, shorthand = 0,
color = 1, color = 1,
image = 2, image = 2,
@ -10359,7 +10358,7 @@ impl Clone for nsStyleImageOrientation {
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction { pub struct nsTimingFunction {
pub mType: nsTimingFunction_Type, pub mType: nsTimingFunction_Type,
pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_200233, pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_200258,
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
@ -10378,56 +10377,56 @@ pub enum nsTimingFunction_Type {
pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction__bindgen_ty_bindgen_id_200233 { pub struct nsTimingFunction__bindgen_ty_bindgen_id_200258 {
pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234>, pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259>,
pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245>, pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270>,
pub bindgen_union_field: [u32; 4usize], pub bindgen_union_field: [u32; 4usize],
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234 { pub struct nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259 {
pub mX1: f32, pub mX1: f32,
pub mY1: f32, pub mY1: f32,
pub mX2: f32, pub mX2: f32,
pub mY2: f32, pub mY2: f32,
} }
#[test] #[test]
fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234() { fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259() {
assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234>() assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259>()
, 16usize); , 16usize);
assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234>() assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259>()
, 4usize); , 4usize);
} }
impl Clone for impl Clone for
nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234 nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259
{ {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245 { pub struct nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270 {
pub mSteps: u32, pub mSteps: u32,
} }
#[test] #[test]
fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245() { fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270() {
assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245>() assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270>()
, 4usize); , 4usize);
assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245>() assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270>()
, 4usize); , 4usize);
} }
impl Clone for impl Clone for
nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245 nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270
{ {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200233() { fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200258() {
assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_200233>() assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_200258>()
, 16usize); , 16usize);
assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_200233>() assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_200258>()
, 4usize); , 4usize);
} }
impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_200233 { impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_200258 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -10488,13 +10487,13 @@ fn bindgen_test_layout_StyleBasicShape() {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct StyleShapeSource<ReferenceBox> { pub struct StyleShapeSource<ReferenceBox> {
pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_200616<ReferenceBox>, pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_200641<ReferenceBox>,
pub mType: StyleShapeSourceType, pub mType: StyleShapeSourceType,
pub mReferenceBox: ReferenceBox, pub mReferenceBox: ReferenceBox,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy, Clone)] #[derive(Debug, Copy, Clone)]
pub struct StyleShapeSource__bindgen_ty_bindgen_id_200616<ReferenceBox> { pub struct StyleShapeSource__bindgen_ty_bindgen_id_200641<ReferenceBox> {
pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>, pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>,
pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
@ -10546,24 +10545,24 @@ pub enum nsStyleContentType {
#[derive(Debug)] #[derive(Debug)]
pub struct nsStyleContentData { pub struct nsStyleContentData {
pub mType: nsStyleContentType, pub mType: nsStyleContentType,
pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_200700, pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_200725,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleContentData__bindgen_ty_bindgen_id_200700 { pub struct nsStyleContentData__bindgen_ty_bindgen_id_200725 {
pub mString: __BindgenUnionField<*mut u16>, pub mString: __BindgenUnionField<*mut u16>,
pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>, pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_200700() { fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_200725() {
assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_200700>() assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_200725>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_200700>() assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_200725>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_200700 { impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_200725 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -10688,25 +10687,25 @@ pub enum nsStyleSVGPaintType {
#[repr(C)] #[repr(C)]
#[derive(Debug)] #[derive(Debug)]
pub struct nsStyleSVGPaint { pub struct nsStyleSVGPaint {
pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_201097, pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_201122,
pub mType: nsStyleSVGPaintType, pub mType: nsStyleSVGPaintType,
pub mFallbackColor: nscolor, pub mFallbackColor: nscolor,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_201097 { pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_201122 {
pub mColor: __BindgenUnionField<nscolor>, pub mColor: __BindgenUnionField<nscolor>,
pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>, pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_201097() { fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_201122() {
assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_201097>() assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_201122>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_201097>() assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_201122>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_201097 { impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_201122 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]
@ -10741,7 +10740,7 @@ pub struct nsStyleSVG {
} }
#[repr(u32)] #[repr(u32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum nsStyleSVG__bindgen_ty_bindgen_id_201274 { pub enum nsStyleSVG__bindgen_ty_bindgen_id_201299 {
FILL_OPACITY_SOURCE_MASK = 3, FILL_OPACITY_SOURCE_MASK = 3,
STROKE_OPACITY_SOURCE_MASK = 12, STROKE_OPACITY_SOURCE_MASK = 12,
STROKE_DASHARRAY_CONTEXT = 16, STROKE_DASHARRAY_CONTEXT = 16,
@ -10760,23 +10759,23 @@ fn bindgen_test_layout_nsStyleSVG() {
pub struct nsStyleFilter { pub struct nsStyleFilter {
pub mType: i32, pub mType: i32,
pub mFilterParameter: nsStyleCoord, pub mFilterParameter: nsStyleCoord,
pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_201340, pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_201365,
} }
#[repr(C)] #[repr(C)]
#[derive(Debug, Copy)] #[derive(Debug, Copy)]
pub struct nsStyleFilter__bindgen_ty_bindgen_id_201340 { pub struct nsStyleFilter__bindgen_ty_bindgen_id_201365 {
pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
pub bindgen_union_field: u64, pub bindgen_union_field: u64,
} }
#[test] #[test]
fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_201340() { fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_201365() {
assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_201340>() assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_201365>()
, 8usize); , 8usize);
assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_201340>() assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_201365>()
, 8usize); , 8usize);
} }
impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_201340 { impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_201365 {
fn clone(&self) -> Self { *self } fn clone(&self) -> Self { *self }
} }
#[test] #[test]

View file

@ -9,7 +9,7 @@ use data::{NUM_THREADS, PerDocumentStyleData};
use env_logger; use env_logger;
use euclid::Size2D; use euclid::Size2D;
use gecko_bindings::bindings::{RawGeckoElementBorrowed, RawGeckoNodeBorrowed}; use gecko_bindings::bindings::{RawGeckoElementBorrowed, RawGeckoNodeBorrowed};
use gecko_bindings::bindings::{RawServoStyleSetBorrowed, RawServoStyleSetOwned, ServoNodeDataOwned}; use gecko_bindings::bindings::{RawServoStyleSetBorrowed, RawServoStyleSetOwned};
use gecko_bindings::bindings::{RawServoStyleSetBorrowedMut, RawGeckoDocumentBorrowed}; use gecko_bindings::bindings::{RawServoStyleSetBorrowedMut, RawGeckoDocumentBorrowed};
use gecko_bindings::bindings::{RawServoStyleSheetBorrowed, ServoComputedValuesBorrowed}; use gecko_bindings::bindings::{RawServoStyleSheetBorrowed, ServoComputedValuesBorrowed};
use gecko_bindings::bindings::{RawServoStyleSheetStrong, ServoComputedValuesStrong}; use gecko_bindings::bindings::{RawServoStyleSheetStrong, ServoComputedValuesStrong};
@ -44,7 +44,7 @@ use style::stylesheets::{Origin, Stylesheet};
use style::timer::Timer; use style::timer::Timer;
use traversal::RecalcStyleOnly; use traversal::RecalcStyleOnly;
use url::Url; use url::Url;
use wrapper::{DUMMY_BASE_URL, GeckoDocument, GeckoElement, GeckoNode, NonOpaqueStyleData}; use wrapper::{DUMMY_BASE_URL, GeckoDocument, GeckoElement, GeckoNode};
/* /*
* For Gecko->Servo function calls, we need to redeclare the same signature that was declared in * For Gecko->Servo function calls, we need to redeclare the same signature that was declared in
@ -126,8 +126,9 @@ pub extern "C" fn Servo_StyleWorkerThreadCount() -> u32 {
} }
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_NodeData_Drop(data: ServoNodeDataOwned) -> () { pub extern "C" fn Servo_Node_ClearNodeData(node: RawGeckoNodeBorrowed) -> () {
let _ = data.into_box::<NonOpaqueStyleData>(); let node = GeckoNode(node);
node.clear_data();
} }
#[no_mangle] #[no_mangle]

View file

@ -17,16 +17,14 @@ use gecko_bindings::bindings::{Gecko_GetPrevSibling, Gecko_GetPrevSiblingElement
use gecko_bindings::bindings::{Gecko_GetServoDeclarationBlock, Gecko_IsHTMLElementInHTMLDocument}; use gecko_bindings::bindings::{Gecko_GetServoDeclarationBlock, Gecko_IsHTMLElementInHTMLDocument};
use gecko_bindings::bindings::{Gecko_IsLink, Gecko_IsRootElement, Gecko_IsTextNode}; use gecko_bindings::bindings::{Gecko_IsLink, Gecko_IsRootElement, Gecko_IsTextNode};
use gecko_bindings::bindings::{Gecko_IsUnvisitedLink, Gecko_IsVisitedLink}; use gecko_bindings::bindings::{Gecko_IsUnvisitedLink, Gecko_IsVisitedLink};
use gecko_bindings::bindings::{Gecko_LocalName, Gecko_Namespace, Gecko_NodeIsElement, Gecko_SetNodeData}; use gecko_bindings::bindings::{Gecko_LocalName, Gecko_Namespace, Gecko_NodeIsElement};
use gecko_bindings::bindings::{RawGeckoDocument, RawGeckoElement, RawGeckoNode};
use gecko_bindings::bindings::Gecko_ClassOrClassList; use gecko_bindings::bindings::Gecko_ClassOrClassList;
use gecko_bindings::bindings::Gecko_GetNodeData;
use gecko_bindings::bindings::Gecko_GetStyleContext; use gecko_bindings::bindings::Gecko_GetStyleContext;
use gecko_bindings::bindings::ServoNodeData;
use gecko_bindings::structs::{NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO, NODE_IS_DIRTY_FOR_SERVO}; use gecko_bindings::structs::{NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO, NODE_IS_DIRTY_FOR_SERVO};
use gecko_bindings::structs::{RawGeckoDocument, RawGeckoElement, RawGeckoNode};
use gecko_bindings::structs::{nsChangeHint, nsIAtom, nsStyleContext}; use gecko_bindings::structs::{nsChangeHint, nsIAtom, nsStyleContext};
use gecko_bindings::sugar::ownership::{FFIArcHelpers, HasBoxFFI, HasFFI, HasSimpleFFI}; use gecko_bindings::structs::OpaqueStyleData;
use gecko_bindings::sugar::ownership::Borrowed; use gecko_bindings::sugar::ownership::FFIArcHelpers;
use gecko_string_cache::{Atom, Namespace, WeakAtom, WeakNamespace}; use gecko_string_cache::{Atom, Namespace, WeakAtom, WeakNamespace};
use glue::GeckoDeclarationBlock; use glue::GeckoDeclarationBlock;
use libc::uintptr_t; use libc::uintptr_t;
@ -55,18 +53,21 @@ use url::Url;
pub struct NonOpaqueStyleData(RefCell<PrivateStyleData>); pub struct NonOpaqueStyleData(RefCell<PrivateStyleData>);
unsafe impl HasFFI for NonOpaqueStyleData {
type FFIType = ServoNodeData;
}
unsafe impl HasSimpleFFI for NonOpaqueStyleData {}
unsafe impl HasBoxFFI for NonOpaqueStyleData {}
impl NonOpaqueStyleData { impl NonOpaqueStyleData {
pub fn new() -> Self { pub fn new() -> Self {
NonOpaqueStyleData(RefCell::new(PrivateStyleData::new())) NonOpaqueStyleData(RefCell::new(PrivateStyleData::new()))
} }
} }
// We can eliminate OpaqueStyleData when the bindings move into the style crate.
fn to_opaque_style_data(d: *mut NonOpaqueStyleData) -> *mut OpaqueStyleData {
d as *mut OpaqueStyleData
}
fn from_opaque_style_data(d: *mut OpaqueStyleData) -> *mut NonOpaqueStyleData {
d as *mut NonOpaqueStyleData
}
// Important: We don't currently refcount the DOM, because the wrapper lifetime // Important: We don't currently refcount the DOM, because the wrapper lifetime
// magic guarantees that our LayoutFoo references won't outlive the root, and // magic guarantees that our LayoutFoo references won't outlive the root, and
// we don't mutate any of the references on the Gecko side during restyle. We // we don't mutate any of the references on the Gecko side during restyle. We
@ -76,18 +77,25 @@ impl NonOpaqueStyleData {
pub struct GeckoNode<'ln>(pub &'ln RawGeckoNode); pub struct GeckoNode<'ln>(pub &'ln RawGeckoNode);
impl<'ln> GeckoNode<'ln> { impl<'ln> GeckoNode<'ln> {
fn get_node_data(&self) -> Borrowed<NonOpaqueStyleData> { fn get_node_data(&self) -> Option<&NonOpaqueStyleData> {
unsafe { unsafe {
Borrowed::from_ffi(Gecko_GetNodeData(&*self.0)) from_opaque_style_data(self.0.mServoData.get()).as_ref()
} }
} }
pub fn initialize_data(self) { pub fn initialize_data(self) {
unsafe { if self.get_node_data().is_none() {
if self.get_node_data().is_null() { let ptr = Box::new(NonOpaqueStyleData::new());
let ptr = Box::new(NonOpaqueStyleData::new()); debug_assert!(self.0.mServoData.get().is_null());
Gecko_SetNodeData(self.0, ptr.into_ffi()); self.0.mServoData.set(to_opaque_style_data(Box::into_raw(ptr)));
} }
}
pub fn clear_data(self) {
if !self.get_node_data().is_none() {
let d = from_opaque_style_data(self.0.mServoData.get());
let _ = unsafe { Box::from_raw(d) };
self.0.mServoData.set(ptr::null_mut());
} }
} }
} }
@ -210,7 +218,7 @@ impl<'ln> TNode for GeckoNode<'ln> {
fn is_dirty(&self) -> bool { fn is_dirty(&self) -> bool {
// Return true unconditionally if we're not yet styled. This is a hack // Return true unconditionally if we're not yet styled. This is a hack
// and should go away soon. // and should go away soon.
if self.get_node_data().is_null() { if self.get_node_data().is_none() {
return true; return true;
} }
@ -229,7 +237,7 @@ impl<'ln> TNode for GeckoNode<'ln> {
fn has_dirty_descendants(&self) -> bool { fn has_dirty_descendants(&self) -> bool {
// Return true unconditionally if we're not yet styled. This is a hack // Return true unconditionally if we're not yet styled. This is a hack
// and should go away soon. // and should go away soon.
if self.get_node_data().is_null() { if self.get_node_data().is_none() {
return true; return true;
} }
let flags = unsafe { Gecko_GetNodeFlags(self.0) }; let flags = unsafe { Gecko_GetNodeFlags(self.0) };
@ -257,18 +265,18 @@ impl<'ln> TNode for GeckoNode<'ln> {
#[inline(always)] #[inline(always)]
unsafe fn borrow_data_unchecked(&self) -> Option<*const PrivateStyleData> { unsafe fn borrow_data_unchecked(&self) -> Option<*const PrivateStyleData> {
self.get_node_data().borrow_opt().map(|d| d.0.as_unsafe_cell().get() self.get_node_data().as_ref().map(|d| d.0.as_unsafe_cell().get()
as *const PrivateStyleData) as *const PrivateStyleData)
} }
#[inline(always)] #[inline(always)]
fn borrow_data(&self) -> Option<Ref<PrivateStyleData>> { fn borrow_data(&self) -> Option<Ref<PrivateStyleData>> {
self.get_node_data().borrow_opt().map(|d| d.0.borrow()) self.get_node_data().as_ref().map(|d| d.0.borrow())
} }
#[inline(always)] #[inline(always)]
fn mutate_data(&self) -> Option<RefMut<PrivateStyleData>> { fn mutate_data(&self) -> Option<RefMut<PrivateStyleData>> {
self.get_node_data().borrow_opt().map(|d| d.0.borrow_mut()) self.get_node_data().as_ref().map(|d| d.0.borrow_mut())
} }
fn restyle_damage(self) -> Self::ConcreteRestyleDamage { fn restyle_damage(self) -> Self::ConcreteRestyleDamage {