From ba743f59d9ecf8a1dd2b4ab27a64aa0549ce6f6a Mon Sep 17 00:00:00 2001 From: Bobby Holley Date: Wed, 21 Sep 2016 15:42:45 -0700 Subject: [PATCH] Bug 1304913 - Have Servo manage node data directly without FFI calls. r=Manishearth MozReview-Commit-ID: H8f8VP18TbM --- ports/geckolib/binding_tools/regen.py | 37 +- ports/geckolib/gecko_bindings/bindings.rs | 28 +- .../geckolib/gecko_bindings/structs_debug.rs | 417 +++++++++--------- .../gecko_bindings/structs_release.rs | 417 +++++++++--------- ports/geckolib/glue.rs | 9 +- ports/geckolib/wrapper.rs | 56 ++- 6 files changed, 493 insertions(+), 471 deletions(-) diff --git a/ports/geckolib/binding_tools/regen.py b/ports/geckolib/binding_tools/regen.py index 836b1dcc641d..0e51a94675f8 100755 --- a/ports/geckolib/binding_tools/regen.py +++ b/ports/geckolib/binding_tools/regen.py @@ -66,6 +66,10 @@ "release": { } }, + "raw_lines": [ + # We can get rid of this when the bindings move into the style crate. + "pub enum OpaqueStyleData {}", + ], "whitelist_vars": [ "NS_THEME_.*", "NODE_.*", @@ -77,6 +81,9 @@ "BORDER_STYLE_.*" ], "whitelist": [ + "RawGeckoNode", + "RawGeckoElement", + "RawGeckoDocument", "Element", "Side", "nsTArrayHeader", @@ -168,6 +175,21 @@ "gfxSize", # <- Same, union { struct { T width; T height; }; T components[2] }; "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. "bindings": { @@ -206,6 +228,8 @@ "FontFamilyType", "nsIAtom", "nsStyleContext", "StyleClipPath", "StyleBasicShapeType", "StyleBasicShape", "nsCSSShadowArray", "nsINode", "nsIDocument", "nsIPrincipal", "nsIURI", + "RawGeckoNode", "RawGeckoElement", "RawGeckoDocument", + "ServoNodeData", ], "servo_nullable_arc_types": [ "ServoComputedValues", "RawServoStyleSheet", @@ -213,7 +237,6 @@ ], "servo_owned_types": [ "RawServoStyleSet", - "ServoNodeData", "StyleChildrenIterator", ], "servo_immutable_borrow_types": [ @@ -430,7 +453,17 @@ def zero_size_type(ty, flags): flags.append("{}BorrowedOrNull".format(ty)) flags.append("--raw-line") 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"], "" if ty["generic"] else "")) if "servo_owned_types" in current_target: for ty in current_target["servo_owned_types"]: diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs index 886c5d1b7ca9..a4464c2f083a 100644 --- a/ports/geckolib/gecko_bindings/bindings.rs +++ b/ports/geckolib/gecko_bindings/bindings.rs @@ -18,16 +18,10 @@ enum ServoDeclarationBlockVoid{ } pub struct ServoDeclarationBlock(ServoDeclarationBlockVoid); pub type RawGeckoNodeBorrowed<'a> = &'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 RawGeckoElementBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, RawGeckoElement>; -enum RawGeckoElementVoid{ } -pub struct RawGeckoElement(RawGeckoElementVoid); pub type RawGeckoDocumentBorrowed<'a> = &'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 RawServoStyleSetBorrowedMut<'a> = &'a mut RawServoStyleSet; pub type RawServoStyleSetOwned = ::sugar::ownership::Owned; @@ -36,14 +30,6 @@ pub type RawServoStyleSetBorrowedMutOrNull<'a> = ::sugar::ownership::BorrowedMut pub type RawServoStyleSetOwnedOrNull = ::sugar::ownership::OwnedOrNull; enum RawServoStyleSetVoid{ } pub struct RawServoStyleSet(RawServoStyleSetVoid); -pub type ServoNodeDataBorrowed<'a> = &'a ServoNodeData; -pub type ServoNodeDataBorrowedMut<'a> = &'a mut ServoNodeData; -pub type ServoNodeDataOwned = ::sugar::ownership::Owned; -pub type ServoNodeDataBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, ServoNodeData>; -pub type ServoNodeDataBorrowedMutOrNull<'a> = ::sugar::ownership::BorrowedMut<'a, ServoNodeData>; -pub type ServoNodeDataOwnedOrNull = ::sugar::ownership::OwnedOrNull; -enum ServoNodeDataVoid{ } -pub struct ServoNodeData(ServoNodeDataVoid); pub type StyleChildrenIteratorBorrowed<'a> = &'a StyleChildrenIterator; pub type StyleChildrenIteratorBorrowedMut<'a> = &'a mut StyleChildrenIterator; pub type StyleChildrenIteratorOwned = ::sugar::ownership::Owned; @@ -179,6 +165,10 @@ use structs::nsINode; use structs::nsIDocument; use structs::nsIPrincipal; use structs::nsIURI; +use structs::RawGeckoNode; +use structs::RawGeckoElement; +use structs::RawGeckoDocument; +use structs::ServoNodeData; extern "C" { pub fn Gecko_EnsureTArrayCapacity(aArray: *mut ::std::os::raw::c_void, @@ -189,7 +179,7 @@ extern "C" { aElementSize: usize, aElementAlign: usize); } extern "C" { - pub fn Servo_NodeData_Drop(arg1: *mut ServoNodeData); + pub fn Servo_Node_ClearNodeData(arg1: *mut nsINode); } #[repr(C)] #[derive(Debug, Copy)] @@ -387,14 +377,6 @@ extern "C" { pub fn Gecko_GetServoDeclarationBlock(element: RawGeckoElementBorrowed) -> ServoDeclarationBlockBorrowedOrNull; } -extern "C" { - pub fn Gecko_GetNodeData(node: RawGeckoNodeBorrowed) - -> ServoNodeDataBorrowedOrNull; -} -extern "C" { - pub fn Gecko_SetNodeData(node: RawGeckoNodeBorrowed, - data: ServoNodeDataOwned); -} extern "C" { pub fn Gecko_Atomize(aString: *const ::std::os::raw::c_char, aLength: u32) -> *mut nsIAtom; diff --git a/ports/geckolib/gecko_bindings/structs_debug.rs b/ports/geckolib/gecko_bindings/structs_debug.rs index 24f94a7b8d54..090359eb467c 100644 --- a/ports/geckolib/gecko_bindings/structs_debug.rs +++ b/ports/geckolib/gecko_bindings/structs_debug.rs @@ -1,5 +1,10 @@ /* automatically generated by rust-bindgen */ +pub enum OpaqueStyleData {} +pub type ServoUnsafeCell = ::std::cell::UnsafeCell; +pub type ServoCell = ::std::cell::Cell; +pub type ServoNodeData = OpaqueStyleData; + #[derive(Debug)] #[repr(C)] pub struct __BindgenUnionField(::std::marker::PhantomData); @@ -1496,8 +1501,8 @@ pub enum JSWhyMagic { #[derive(Debug, Copy)] pub struct jsval_layout { pub asBits: __BindgenUnionField, - pub debugView: __BindgenUnionField, - pub s: __BindgenUnionField, + pub debugView: __BindgenUnionField, + pub s: __BindgenUnionField, pub asDouble: __BindgenUnionField, pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub asWord: __BindgenUnionField, @@ -1506,20 +1511,20 @@ pub struct jsval_layout { } #[repr(C)] #[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, } #[test] -fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61261() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61264() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 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 } } -impl jsval_layout__bindgen_ty_bindgen_id_61261 { +impl jsval_layout__bindgen_ty_bindgen_id_61264 { #[inline] pub fn payload47(&self) -> u64 { unsafe { @@ -1552,36 +1557,36 @@ impl jsval_layout__bindgen_ty_bindgen_id_61261 { } #[repr(C)] #[derive(Debug, Copy)] -pub struct jsval_layout__bindgen_ty_bindgen_id_61268 { - pub payload: jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269, +pub struct jsval_layout__bindgen_ty_bindgen_id_61271 { + pub payload: jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272, } #[repr(C)] #[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, pub u32: __BindgenUnionField, pub why: __BindgenUnionField, pub bindgen_union_field: u32, } #[test] -fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61268__bindgen_ty_bindgen_id_61269() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61271__bindgen_ty_bindgen_id_61272() { + assert_eq!(::std::mem::size_of::() , 4usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } 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 } } #[test] -fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61268() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61271() { + assert_eq!(::std::mem::size_of::() , 4usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 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 } } impl Clone for jsval_layout { @@ -1615,7 +1620,7 @@ pub type nsAString_internal_size_type = u32; pub type nsAString_internal_index_type = u32; #[repr(u32)] #[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_TERMINATED = 1, F_VOIDED = 2, @@ -1677,12 +1682,12 @@ fn bindgen_test_layout_nsString() { assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_63716 { +pub struct bindgen_vtable__bindgen_id_63719 { } #[repr(C)] #[derive(Debug, Copy)] 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; #[test] @@ -1724,7 +1729,7 @@ pub type nsACString_internal_size_type = u32; pub type nsACString_internal_index_type = u32; #[repr(u32)] #[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_TERMINATED = 1, F_VOIDED = 2, @@ -1786,12 +1791,12 @@ fn bindgen_test_layout_nsCString() { assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_65498 { +pub struct bindgen_vtable__bindgen_id_65501 { } #[repr(C)] #[derive(Debug, Copy)] 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; #[test] @@ -1803,7 +1808,7 @@ impl Clone for nsCStringComparator { fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_65542 { +pub struct bindgen_vtable__bindgen_id_65545 { } /** * Basic component object model interface. Objects which implement @@ -1814,7 +1819,7 @@ pub struct bindgen_vtable__bindgen_id_65542 { #[repr(C)] #[derive(Debug, Copy)] pub struct nsISupports { - pub vtable_: *const bindgen_vtable__bindgen_id_65542, + pub vtable_: *const bindgen_vtable__bindgen_id_65545, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1832,7 +1837,7 @@ impl Clone for nsISupports { fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_65825 { +pub struct bindgen_vtable__bindgen_id_65828 { } /** * Participant implementation classes @@ -1840,7 +1845,7 @@ pub struct bindgen_vtable__bindgen_id_65825 { #[repr(C)] #[derive(Debug, Copy)] pub struct nsCycleCollectionParticipant { - pub vtable_: *const bindgen_vtable__bindgen_id_65825, + pub vtable_: *const bindgen_vtable__bindgen_id_65828, pub mMightSkip: bool, } #[test] @@ -2149,7 +2154,7 @@ fn bindgen_test_layout_ErrorResult() { #[derive(Debug)] pub struct TErrorResult { pub mResult: nsresult, - pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_73318, + pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_73321, pub mMightHaveUnreportedJSException: bool, pub mUnionState: TErrorResult_UnionState, pub _mOwningThread: nsAutoOwningThread, @@ -2179,7 +2184,7 @@ pub struct TErrorResult_DOMExceptionInfo { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct TErrorResult__bindgen_ty_bindgen_id_73318 { +pub struct TErrorResult__bindgen_ty_bindgen_id_73321 { pub mMessage: __BindgenUnionField<*mut TErrorResult_Message>, pub mJSException: __BindgenUnionField, pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo>, @@ -2326,7 +2331,7 @@ impl nsIAtom { } } #[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 @@ -2368,7 +2373,7 @@ pub struct bindgen_vtable__bindgen_id_74305 { #[repr(C)] #[derive(Debug)] pub struct nsWrapperCache { - pub vtable_: *const bindgen_vtable__bindgen_id_74305, + pub vtable_: *const bindgen_vtable__bindgen_id_74308, pub mWrapper: *mut JSObject, pub mFlags: nsWrapperCache_FlagsType, } @@ -2393,7 +2398,7 @@ pub type nsWrapperCache_FlagsType = u32; * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER). */ #[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, } #[repr(u32)] @@ -2402,12 +2407,12 @@ pub enum nsWrapperCache__bindgen_ty_bindgen_id_74512 { * binding. */ #[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, } #[repr(u32)] #[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, } #[test] @@ -2481,7 +2486,7 @@ impl Clone for random_access_iterator_tag { fn clone(&self) -> Self { *self } } #[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. @@ -2497,7 +2502,7 @@ pub struct bindgen_vtable__bindgen_id_93421 { #[repr(C)] #[derive(Debug)] pub struct SourceHook { - pub vtable_: *const bindgen_vtable__bindgen_id_93421, + pub vtable_: *const bindgen_vtable__bindgen_id_93424, } #[test] fn bindgen_test_layout_SourceHook() { @@ -2717,7 +2722,7 @@ pub type nsPtrHashKey_KeyType = *mut T; pub type nsPtrHashKey_KeyTypePointer = *mut T; #[repr(i32)] #[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)] #[derive(Debug, Copy)] pub struct nsIRunnable { @@ -2752,7 +2757,7 @@ pub struct nsIPrincipal_COMTypeInfo { } #[repr(u32)] #[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_INSTALLED = 1, APP_STATUS_PRIVILEGED = 2, @@ -3075,7 +3080,7 @@ pub type nsIDocument_FrameRequestCallbackList = nsTArray>; #[repr(u32)] #[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)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsIDocument_DeprecatedOperations { @@ -3766,10 +3771,9 @@ pub struct nsINode { pub mNextSibling: *mut nsIContent, pub mPreviousSibling: *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 mServoNodeData: UniquePtr>, + pub mServoData: ServoCell<*mut ServoNodeData>, } pub type nsINode_BoxQuadOptions = BoxQuadOptions; pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions; @@ -3792,7 +3796,7 @@ pub struct nsINode_COMTypeInfo { * Bit-flags to pass (or'ed together) to IsNodeOfType() */ #[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, eDOCUMENT = 2, eATTRIBUTE = 4, @@ -3807,12 +3811,12 @@ pub enum nsINode__bindgen_ty_bindgen_id_107996 { eFILTER = 2048, } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_108765 { +pub struct bindgen_vtable__bindgen_id_108768 { } #[repr(C)] #[derive(Debug)] 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 */ @@ -3881,19 +3885,19 @@ pub enum nsINode_BooleanFlag { } #[repr(C)] #[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 mSubtreeRoot: __BindgenUnionField<*mut nsINode>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_111865() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_111874() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsINode__bindgen_ty_bindgen_id_111865 { +impl Clone for nsINode__bindgen_ty_bindgen_id_111874 { fn clone(&self) -> Self { *self } } #[test] @@ -4223,7 +4227,7 @@ pub struct nsIDOMNode_COMTypeInfo { } #[repr(u32)] #[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, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, @@ -4239,7 +4243,7 @@ pub enum nsIDOMNode__bindgen_ty_bindgen_id_120015 { } #[repr(u32)] #[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_PRECEDING = 2, DOCUMENT_POSITION_FOLLOWING = 4, @@ -5113,14 +5117,14 @@ pub struct nsIContent_COMTypeInfo { } #[repr(u32)] #[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, eAllButXBL = 1, eSkipPlaceholderContent = 2, } #[repr(i32)] #[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_VALUE_NO_MATCH = -2, } @@ -5326,7 +5330,7 @@ pub struct FragmentOrElement_nsDOMSlots { * @see FragmentOrElement::GetAttributes */ pub mAttributeMap: RefPtr, - 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. */ @@ -5363,7 +5367,7 @@ pub struct FragmentOrElement_nsDOMSlots { } #[repr(C)] #[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. * @see FragmentOrElement::GetBindingParent @@ -5376,13 +5380,13 @@ pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536 { pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125536() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_125545() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 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 } } #[test] @@ -5532,7 +5536,7 @@ pub struct nsIChannel_COMTypeInfo { } #[repr(u32)] #[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_RETARGETED_DOCUMENT_URI = 131072, LOAD_REPLACE = 262144, @@ -5546,7 +5550,7 @@ pub enum nsIChannel__bindgen_ty_bindgen_id_137642 { } #[repr(u32)] #[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_ATTACHMENT = 1, } @@ -5572,7 +5576,7 @@ pub struct nsIRequest_COMTypeInfo { } #[repr(u32)] #[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_NORMAL = 0, LOAD_BACKGROUND = 1, @@ -6127,13 +6131,13 @@ pub enum nsIPresShell_ReflowRootHandling { eNoPositionOrSizeChange = 1, eInferFromBitToAdd = 2, } -pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_155483 = - nsIPresShell__bindgen_ty_bindgen_id_155483::SCROLL_TOP; -pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_155483 = - nsIPresShell__bindgen_ty_bindgen_id_155483::SCROLL_BOTTOM; +pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_155504 = + nsIPresShell__bindgen_ty_bindgen_id_155504::SCROLL_TOP; +pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_155504 = + nsIPresShell__bindgen_ty_bindgen_id_155504::SCROLL_BOTTOM; #[repr(i32)] #[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_BOTTOM = 100, SCROLL_CENTER = 50, @@ -6161,7 +6165,7 @@ impl Clone for nsIPresShell_ScrollAxis { } #[repr(u32)] #[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_OVERFLOW_HIDDEN = 2, SCROLL_NO_PARENT_FRAMES = 4, @@ -6208,7 +6212,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_155514 { * transform. */ #[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_IGNORE_VIEWPORT_SCROLLING = 2, RENDER_CARET = 4, @@ -6219,7 +6223,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_155913 { } #[repr(u32)] #[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_AUTO_SCALE = 128, } @@ -6232,7 +6236,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_155931 { * transparent by default. */ #[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)] #[derive(Debug)] pub struct nsIPresShell_PointerCaptureInfo { @@ -6505,14 +6509,6 @@ impl Clone for nsDOMMutationObserver { } #[repr(C)] #[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 _address: u8, } @@ -6627,67 +6623,67 @@ pub struct DOMPointInit { impl Clone for DOMPointInit { fn clone(&self) -> Self { *self } } -pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_LISTENERMANAGER; -pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_PROPERTIES; -pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_IS_ANONYMOUS_ROOT; -pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; -pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_IS_NATIVE_ANONYMOUS_ROOT; -pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_FORCE_XBL_BINDINGS; -pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_MAY_BE_IN_BINDING_MNGR; -pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_IS_EDITABLE; -pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_MAY_HAVE_CLASS; -pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_IS_IN_SHADOW_TREE; -pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_EMPTY_SELECTOR; -pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_SLOW_SELECTOR; -pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_EDGE_CHILD_SELECTOR; -pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_157482 +pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_LISTENERMANAGER; +pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_PROPERTIES; +pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_IS_ANONYMOUS_ROOT; +pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; +pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_IS_NATIVE_ANONYMOUS_ROOT; +pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_FORCE_XBL_BINDINGS; +pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_MAY_BE_IN_BINDING_MNGR; +pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_IS_EDITABLE; +pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_MAY_HAVE_CLASS; +pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_IS_IN_SHADOW_TREE; +pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_EMPTY_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_SLOW_SELECTOR; +pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_EDGE_CHILD_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_157496 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; -pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_ALL_SELECTOR_FLAGS; -pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_NEEDS_FRAME; -pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_DESCENDANTS_NEED_FRAMES; -pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_ACCESSKEY; -pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_DIRECTION_RTL; -pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_HAS_DIRECTION_LTR; -pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_ALL_DIRECTION_FLAGS; -pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_CHROME_ONLY_ACCESS; -pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; -pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_1; -pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_2; -pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_1; -pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_157482 + _bindgen_ty_bindgen_id_157496::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; +pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_ALL_SELECTOR_FLAGS; +pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_NEEDS_FRAME; +pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_DESCENDANTS_NEED_FRAMES; +pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_ACCESSKEY; +pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_DIRECTION_RTL; +pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_HAS_DIRECTION_LTR; +pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_ALL_DIRECTION_FLAGS; +pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_CHROME_ONLY_ACCESS; +pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; +pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_157496 = - _bindgen_ty_bindgen_id_157482::NODE_SHARED_RESTYLE_BIT_2; -pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_157482 = - _bindgen_ty_bindgen_id_157482::NODE_TYPE_SPECIFIC_BITS_OFFSET; + _bindgen_ty_bindgen_id_157496::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_157496 = + _bindgen_ty_bindgen_id_157496::NODE_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[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_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -6745,7 +6741,7 @@ pub struct nsITimer_COMTypeInfo { } #[repr(u32)] #[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_REPEATING_SLACK = 1, TYPE_REPEATING_PRECISE = 2, @@ -6771,7 +6767,7 @@ pub struct nsExpirationState { } #[repr(u32)] #[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, MAX_INDEX_IN_GENERATION = 268435455, } @@ -6845,7 +6841,7 @@ pub struct imgIRequest_COMTypeInfo { } #[repr(u32)] #[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_SIZE_AVAILABLE = 1, STATUS_LOAD_COMPLETE = 2, @@ -6857,7 +6853,7 @@ pub enum imgIRequest__bindgen_ty_bindgen_id_175118 { } #[repr(u32)] #[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_ANONYMOUS = 2, 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; #[repr(u32)] #[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, } #[test] @@ -7393,7 +7389,7 @@ pub struct imgINotificationObserver_COMTypeInfo { } #[repr(u32)] #[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, FRAME_UPDATE = 2, FRAME_COMPLETE = 3, @@ -7642,7 +7638,7 @@ pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer = *const gfxFontFeatureValueSet_FeatureValueHashKey; #[repr(u32)] #[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, } @@ -8038,23 +8034,23 @@ pub enum nsStyleUnit { } #[repr(C)] #[derive(Debug, Copy)] -pub struct _bindgen_ty_bindgen_id_189908 { +pub struct _bindgen_ty_bindgen_id_189922 { pub mInt: __BindgenUnionField, pub mFloat: __BindgenUnionField, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout__bindgen_ty_bindgen_id_189908() { - assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_189908>() , +fn bindgen_test_layout__bindgen_ty_bindgen_id_189922() { + assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_189922>() , 8usize); - assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_189908>() , + assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_189922>() , 8usize); } -impl Clone for _bindgen_ty_bindgen_id_189908 { +impl Clone for _bindgen_ty_bindgen_id_189922 { 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 * 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::() , 8usize); } #[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 @@ -9117,7 +9113,7 @@ pub struct bindgen_vtable__bindgen_id_199319 { #[repr(C)] #[derive(Debug)] pub struct IProgressObserver { - pub vtable_: *const bindgen_vtable__bindgen_id_199319, + pub vtable_: *const bindgen_vtable__bindgen_id_199333, pub _base: u64, } #[test] @@ -9139,7 +9135,7 @@ pub struct nsISupportsPriority_COMTypeInfo { } #[repr(i32)] #[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_HIGH = -10, PRIORITY_NORMAL = 0, @@ -9574,7 +9570,7 @@ fn bindgen_test_layout_nsCSSValueFloatColor() { #[derive(Debug)] pub struct nsCSSValue { pub mUnit: nsCSSUnit, - pub mValue: nsCSSValue__bindgen_ty_bindgen_id_202395, + pub mValue: nsCSSValue__bindgen_ty_bindgen_id_202409, } #[repr(C)] #[derive(Debug)] @@ -9590,7 +9586,7 @@ fn bindgen_test_layout_nsCSSValue_Array() { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSValue__bindgen_ty_bindgen_id_202395 { +pub struct nsCSSValue__bindgen_ty_bindgen_id_202409 { pub mInt: __BindgenUnionField, pub mFloat: __BindgenUnionField, pub mString: __BindgenUnionField<*mut nsStringBuffer>, @@ -9615,13 +9611,13 @@ pub struct nsCSSValue__bindgen_ty_bindgen_id_202395 { pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_202395() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_202409() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsCSSValue__bindgen_ty_bindgen_id_202395 { +impl Clone for nsCSSValue__bindgen_ty_bindgen_id_202409 { fn clone(&self) -> Self { *self } } #[test] @@ -9642,12 +9638,12 @@ fn bindgen_test_layout_nsCSSValueGradientStop() { assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_202603 { +pub struct bindgen_vtable__bindgen_id_202617 { } #[repr(C)] #[derive(Debug, Copy)] pub struct CounterStyle { - pub vtable_: *const bindgen_vtable__bindgen_id_202603, + pub vtable_: *const bindgen_vtable__bindgen_id_202617, pub mStyle: i32, } #[test] @@ -9728,6 +9724,9 @@ fn bindgen_test_layout_nsStyleVisibility() { assert_eq!(::std::mem::size_of::() , 7usize); assert_eq!(::std::mem::align_of::() , 1usize); } +pub type RawGeckoNode = nsINode; +pub type RawGeckoElement = Element; +pub type RawGeckoDocument = nsIDocument; #[repr(C)] #[derive(Debug)] pub struct FragmentOrURL { @@ -9844,26 +9843,26 @@ pub struct nsStyleImage { pub mCachedBIData: UniquePtr>, 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>, pub mImageTracked: bool, } #[repr(C)] #[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 mGradient: __BindgenUnionField<*mut nsStyleGradient>, pub mElementId: __BindgenUnionField<*mut u16>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_204560() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_204585() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleImage__bindgen_ty_bindgen_id_204560 { +impl Clone for nsStyleImage__bindgen_ty_bindgen_id_204585 { fn clone(&self) -> Self { *self } } #[test] @@ -9914,7 +9913,7 @@ pub struct nsStyleImageLayers { } #[repr(u32)] #[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, color = 1, image = 2, @@ -10414,7 +10413,7 @@ impl Clone for nsStyleImageOrientation { #[derive(Debug, Copy)] pub struct nsTimingFunction { 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)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] @@ -10433,56 +10432,56 @@ pub enum nsTimingFunction_Type { pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction__bindgen_ty_bindgen_id_206368 { - pub mFunc: __BindgenUnionField, - pub __bindgen_anon_1: __BindgenUnionField, +pub struct nsTimingFunction__bindgen_ty_bindgen_id_206393 { + pub mFunc: __BindgenUnionField, + pub __bindgen_anon_1: __BindgenUnionField, pub bindgen_union_field: [u32; 4usize], } #[repr(C)] #[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 mY1: f32, pub mX2: f32, pub mY2: f32, } #[test] -fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206369() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206394() { + assert_eq!(::std::mem::size_of::() , 16usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } 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 } } #[repr(C)] #[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, } #[test] -fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206368__bindgen_ty_bindgen_id_206380() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206393__bindgen_ty_bindgen_id_206405() { + assert_eq!(::std::mem::size_of::() , 4usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } 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 } } #[test] -fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206368() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_206393() { + assert_eq!(::std::mem::size_of::() , 16usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } -impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_206368 { +impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_206393 { fn clone(&self) -> Self { *self } } #[test] @@ -10543,13 +10542,13 @@ fn bindgen_test_layout_StyleBasicShape() { #[repr(C)] #[derive(Debug)] pub struct StyleShapeSource { - pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_206751, + pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_206776, pub mType: StyleShapeSourceType, pub mReferenceBox: ReferenceBox, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StyleShapeSource__bindgen_ty_bindgen_id_206751 { +pub struct StyleShapeSource__bindgen_ty_bindgen_id_206776 { pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub bindgen_union_field: u64, @@ -10601,25 +10600,25 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_206835, + pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_206860, pub mImageTracked: bool, } #[repr(C)] #[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 mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_206835() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_206860() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_206835 { +impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_206860 { fn clone(&self) -> Self { *self } } #[test] @@ -10744,25 +10743,25 @@ pub enum nsStyleSVGPaintType { #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_207234, + pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_207259, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_207234 { +pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_207259 { pub mColor: __BindgenUnionField, pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_207234() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_207259() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_207234 { +impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_207259 { fn clone(&self) -> Self { *self } } #[test] @@ -10797,7 +10796,7 @@ pub struct nsStyleSVG { } #[repr(u32)] #[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, STROKE_OPACITY_SOURCE_MASK = 12, STROKE_DASHARRAY_CONTEXT = 16, @@ -10816,23 +10815,23 @@ fn bindgen_test_layout_nsStyleSVG() { pub struct nsStyleFilter { pub mType: i32, 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)] #[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 mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_207477() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_207502() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_207477 { +impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_207502 { fn clone(&self) -> Self { *self } } #[test] diff --git a/ports/geckolib/gecko_bindings/structs_release.rs b/ports/geckolib/gecko_bindings/structs_release.rs index 6546bd48da68..342c1298ccf1 100644 --- a/ports/geckolib/gecko_bindings/structs_release.rs +++ b/ports/geckolib/gecko_bindings/structs_release.rs @@ -1,5 +1,10 @@ /* automatically generated by rust-bindgen */ +pub enum OpaqueStyleData {} +pub type ServoUnsafeCell = ::std::cell::UnsafeCell; +pub type ServoCell = ::std::cell::Cell; +pub type ServoNodeData = OpaqueStyleData; + #[derive(Debug)] #[repr(C)] pub struct __BindgenUnionField(::std::marker::PhantomData); @@ -1496,8 +1501,8 @@ pub enum JSWhyMagic { #[derive(Debug, Copy)] pub struct jsval_layout { pub asBits: __BindgenUnionField, - pub debugView: __BindgenUnionField, - pub s: __BindgenUnionField, + pub debugView: __BindgenUnionField, + pub s: __BindgenUnionField, pub asDouble: __BindgenUnionField, pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub asWord: __BindgenUnionField, @@ -1506,20 +1511,20 @@ pub struct jsval_layout { } #[repr(C)] #[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, } #[test] -fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58982() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58985() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 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 } } -impl jsval_layout__bindgen_ty_bindgen_id_58982 { +impl jsval_layout__bindgen_ty_bindgen_id_58985 { #[inline] pub fn payload47(&self) -> u64 { unsafe { @@ -1552,36 +1557,36 @@ impl jsval_layout__bindgen_ty_bindgen_id_58982 { } #[repr(C)] #[derive(Debug, Copy)] -pub struct jsval_layout__bindgen_ty_bindgen_id_58989 { - pub payload: jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990, +pub struct jsval_layout__bindgen_ty_bindgen_id_58992 { + pub payload: jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993, } #[repr(C)] #[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, pub u32: __BindgenUnionField, pub why: __BindgenUnionField, pub bindgen_union_field: u32, } #[test] -fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58989__bindgen_ty_bindgen_id_58990() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58992__bindgen_ty_bindgen_id_58993() { + assert_eq!(::std::mem::size_of::() , 4usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } 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 } } #[test] -fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58989() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_58992() { + assert_eq!(::std::mem::size_of::() , 4usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 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 } } impl Clone for jsval_layout { @@ -1615,7 +1620,7 @@ pub type nsAString_internal_size_type = u32; pub type nsAString_internal_index_type = u32; #[repr(u32)] #[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_TERMINATED = 1, F_VOIDED = 2, @@ -1677,12 +1682,12 @@ fn bindgen_test_layout_nsString() { assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_61424 { +pub struct bindgen_vtable__bindgen_id_61427 { } #[repr(C)] #[derive(Debug, Copy)] 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; #[test] @@ -1724,7 +1729,7 @@ pub type nsACString_internal_size_type = u32; pub type nsACString_internal_index_type = u32; #[repr(u32)] #[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_TERMINATED = 1, F_VOIDED = 2, @@ -1786,12 +1791,12 @@ fn bindgen_test_layout_nsCString() { assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_63206 { +pub struct bindgen_vtable__bindgen_id_63209 { } #[repr(C)] #[derive(Debug, Copy)] 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; #[test] @@ -1803,7 +1808,7 @@ impl Clone for nsCStringComparator { fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_63250 { +pub struct bindgen_vtable__bindgen_id_63253 { } /** * Basic component object model interface. Objects which implement @@ -1814,7 +1819,7 @@ pub struct bindgen_vtable__bindgen_id_63250 { #[repr(C)] #[derive(Debug, Copy)] pub struct nsISupports { - pub vtable_: *const bindgen_vtable__bindgen_id_63250, + pub vtable_: *const bindgen_vtable__bindgen_id_63253, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1832,7 +1837,7 @@ impl Clone for nsISupports { fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_63533 { +pub struct bindgen_vtable__bindgen_id_63536 { } /** * Participant implementation classes @@ -1840,7 +1845,7 @@ pub struct bindgen_vtable__bindgen_id_63533 { #[repr(C)] #[derive(Debug, Copy)] pub struct nsCycleCollectionParticipant { - pub vtable_: *const bindgen_vtable__bindgen_id_63533, + pub vtable_: *const bindgen_vtable__bindgen_id_63536, pub mMightSkip: bool, } #[test] @@ -2163,7 +2168,7 @@ fn bindgen_test_layout_ErrorResult() { #[derive(Debug)] pub struct TErrorResult { pub mResult: nsresult, - pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_68153, + pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_68156, pub _phantom_0: ::std::marker::PhantomData, } #[repr(C)] @@ -2180,7 +2185,7 @@ pub struct TErrorResult_DOMExceptionInfo { } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct TErrorResult__bindgen_ty_bindgen_id_68153 { +pub struct TErrorResult__bindgen_ty_bindgen_id_68156 { pub mMessage: __BindgenUnionField<*mut TErrorResult_Message>, pub mJSException: __BindgenUnionField, pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo>, @@ -2313,7 +2318,7 @@ impl nsIAtom { } } #[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 @@ -2355,7 +2360,7 @@ pub struct bindgen_vtable__bindgen_id_68924 { #[repr(C)] #[derive(Debug)] pub struct nsWrapperCache { - pub vtable_: *const bindgen_vtable__bindgen_id_68924, + pub vtable_: *const bindgen_vtable__bindgen_id_68927, pub mWrapper: *mut JSObject, pub mFlags: nsWrapperCache_FlagsType, } @@ -2380,7 +2385,7 @@ pub type nsWrapperCache_FlagsType = u32; * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER). */ #[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, } #[repr(u32)] @@ -2389,12 +2394,12 @@ pub enum nsWrapperCache__bindgen_ty_bindgen_id_69120 { * binding. */ #[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, } #[repr(u32)] #[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, } #[test] @@ -2468,7 +2473,7 @@ impl Clone for random_access_iterator_tag { fn clone(&self) -> Self { *self } } #[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. @@ -2484,7 +2489,7 @@ pub struct bindgen_vtable__bindgen_id_87797 { #[repr(C)] #[derive(Debug)] pub struct SourceHook { - pub vtable_: *const bindgen_vtable__bindgen_id_87797, + pub vtable_: *const bindgen_vtable__bindgen_id_87800, } #[test] fn bindgen_test_layout_SourceHook() { @@ -2673,7 +2678,7 @@ pub type nsPtrHashKey_KeyType = *mut T; pub type nsPtrHashKey_KeyTypePointer = *mut T; #[repr(i32)] #[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)] #[derive(Debug, Copy)] pub struct nsIRunnable { @@ -2708,7 +2713,7 @@ pub struct nsIPrincipal_COMTypeInfo { } #[repr(u32)] #[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_INSTALLED = 1, APP_STATUS_PRIVILEGED = 2, @@ -3026,7 +3031,7 @@ pub type nsIDocument_FrameRequestCallbackList = nsTArray>; #[repr(u32)] #[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)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsIDocument_DeprecatedOperations { @@ -3717,10 +3722,9 @@ pub struct nsINode { pub mNextSibling: *mut nsIContent, pub mPreviousSibling: *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 mServoNodeData: UniquePtr>, + pub mServoData: ServoCell<*mut ServoNodeData>, } pub type nsINode_BoxQuadOptions = BoxQuadOptions; pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions; @@ -3743,7 +3747,7 @@ pub struct nsINode_COMTypeInfo { * Bit-flags to pass (or'ed together) to IsNodeOfType() */ #[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, eDOCUMENT = 2, eATTRIBUTE = 4, @@ -3758,12 +3762,12 @@ pub enum nsINode__bindgen_ty_bindgen_id_102219 { eFILTER = 2048, } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_102988 { +pub struct bindgen_vtable__bindgen_id_102991 { } #[repr(C)] #[derive(Debug)] 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 */ @@ -3832,19 +3836,19 @@ pub enum nsINode_BooleanFlag { } #[repr(C)] #[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 mSubtreeRoot: __BindgenUnionField<*mut nsINode>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_106075() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_106084() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsINode__bindgen_ty_bindgen_id_106075 { +impl Clone for nsINode__bindgen_ty_bindgen_id_106084 { fn clone(&self) -> Self { *self } } #[test] @@ -4174,7 +4178,7 @@ pub struct nsIDOMNode_COMTypeInfo { } #[repr(u32)] #[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, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, @@ -4190,7 +4194,7 @@ pub enum nsIDOMNode__bindgen_ty_bindgen_id_114360 { } #[repr(u32)] #[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_PRECEDING = 2, DOCUMENT_POSITION_FOLLOWING = 4, @@ -5061,14 +5065,14 @@ pub struct nsIContent_COMTypeInfo { } #[repr(u32)] #[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, eAllButXBL = 1, eSkipPlaceholderContent = 2, } #[repr(i32)] #[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_VALUE_NO_MATCH = -2, } @@ -5274,7 +5278,7 @@ pub struct FragmentOrElement_nsDOMSlots { * @see FragmentOrElement::GetAttributes */ pub mAttributeMap: RefPtr, - 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. */ @@ -5311,7 +5315,7 @@ pub struct FragmentOrElement_nsDOMSlots { } #[repr(C)] #[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. * @see FragmentOrElement::GetBindingParent @@ -5324,13 +5328,13 @@ pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801 { pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119801() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119810() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 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 } } #[test] @@ -5480,7 +5484,7 @@ pub struct nsIChannel_COMTypeInfo { } #[repr(u32)] #[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_RETARGETED_DOCUMENT_URI = 131072, LOAD_REPLACE = 262144, @@ -5494,7 +5498,7 @@ pub enum nsIChannel__bindgen_ty_bindgen_id_131594 { } #[repr(u32)] #[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_ATTACHMENT = 1, } @@ -5520,7 +5524,7 @@ pub struct nsIRequest_COMTypeInfo { } #[repr(u32)] #[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_NORMAL = 0, LOAD_BACKGROUND = 1, @@ -6073,13 +6077,13 @@ pub enum nsIPresShell_ReflowRootHandling { eNoPositionOrSizeChange = 1, eInferFromBitToAdd = 2, } -pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_149423 = - nsIPresShell__bindgen_ty_bindgen_id_149423::SCROLL_TOP; -pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_149423 = - nsIPresShell__bindgen_ty_bindgen_id_149423::SCROLL_BOTTOM; +pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_149444 = + nsIPresShell__bindgen_ty_bindgen_id_149444::SCROLL_TOP; +pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_149444 = + nsIPresShell__bindgen_ty_bindgen_id_149444::SCROLL_BOTTOM; #[repr(i32)] #[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_BOTTOM = 100, SCROLL_CENTER = 50, @@ -6107,7 +6111,7 @@ impl Clone for nsIPresShell_ScrollAxis { } #[repr(u32)] #[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_OVERFLOW_HIDDEN = 2, SCROLL_NO_PARENT_FRAMES = 4, @@ -6154,7 +6158,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_149454 { * transform. */ #[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_IGNORE_VIEWPORT_SCROLLING = 2, RENDER_CARET = 4, @@ -6165,7 +6169,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_149822 { } #[repr(u32)] #[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_AUTO_SCALE = 128, } @@ -6178,7 +6182,7 @@ pub enum nsIPresShell__bindgen_ty_bindgen_id_149840 { * transparent by default. */ #[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)] #[derive(Debug)] pub struct nsIPresShell_PointerCaptureInfo { @@ -6451,14 +6455,6 @@ impl Clone for nsDOMMutationObserver { } #[repr(C)] #[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 _address: u8, } @@ -6573,67 +6569,67 @@ pub struct DOMPointInit { impl Clone for DOMPointInit { fn clone(&self) -> Self { *self } } -pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_LISTENERMANAGER; -pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_PROPERTIES; -pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_IS_ANONYMOUS_ROOT; -pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; -pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_IS_NATIVE_ANONYMOUS_ROOT; -pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_FORCE_XBL_BINDINGS; -pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_MAY_BE_IN_BINDING_MNGR; -pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_IS_EDITABLE; -pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_MAY_HAVE_CLASS; -pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_IS_IN_SHADOW_TREE; -pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_EMPTY_SELECTOR; -pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_SLOW_SELECTOR; -pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_EDGE_CHILD_SELECTOR; -pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_151358 +pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_LISTENERMANAGER; +pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_PROPERTIES; +pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_IS_ANONYMOUS_ROOT; +pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; +pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_IS_NATIVE_ANONYMOUS_ROOT; +pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_FORCE_XBL_BINDINGS; +pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_MAY_BE_IN_BINDING_MNGR; +pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_IS_EDITABLE; +pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_MAY_HAVE_CLASS; +pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_IS_IN_SHADOW_TREE; +pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_EMPTY_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_SLOW_SELECTOR; +pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_EDGE_CHILD_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_151372 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; -pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_ALL_SELECTOR_FLAGS; -pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_NEEDS_FRAME; -pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_DESCENDANTS_NEED_FRAMES; -pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_ACCESSKEY; -pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_DIRECTION_RTL; -pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_HAS_DIRECTION_LTR; -pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_ALL_DIRECTION_FLAGS; -pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_CHROME_ONLY_ACCESS; -pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; -pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_1; -pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_2; -pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_1; -pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_151358 + _bindgen_ty_bindgen_id_151372::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; +pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_ALL_SELECTOR_FLAGS; +pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_NEEDS_FRAME; +pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_DESCENDANTS_NEED_FRAMES; +pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_ACCESSKEY; +pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_DIRECTION_RTL; +pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_HAS_DIRECTION_LTR; +pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_ALL_DIRECTION_FLAGS; +pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_CHROME_ONLY_ACCESS; +pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; +pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_151372 = - _bindgen_ty_bindgen_id_151358::NODE_SHARED_RESTYLE_BIT_2; -pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_151358 = - _bindgen_ty_bindgen_id_151358::NODE_TYPE_SPECIFIC_BITS_OFFSET; + _bindgen_ty_bindgen_id_151372::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_151372 = + _bindgen_ty_bindgen_id_151372::NODE_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[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_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -6691,7 +6687,7 @@ pub struct nsITimer_COMTypeInfo { } #[repr(u32)] #[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_REPEATING_SLACK = 1, TYPE_REPEATING_PRECISE = 2, @@ -6717,7 +6713,7 @@ pub struct nsExpirationState { } #[repr(u32)] #[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, MAX_INDEX_IN_GENERATION = 268435455, } @@ -6791,7 +6787,7 @@ pub struct imgIRequest_COMTypeInfo { } #[repr(u32)] #[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_SIZE_AVAILABLE = 1, STATUS_LOAD_COMPLETE = 2, @@ -6803,7 +6799,7 @@ pub enum imgIRequest__bindgen_ty_bindgen_id_169139 { } #[repr(u32)] #[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_ANONYMOUS = 2, 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; #[repr(u32)] #[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, } #[test] @@ -7339,7 +7335,7 @@ pub struct imgINotificationObserver_COMTypeInfo { } #[repr(u32)] #[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, FRAME_UPDATE = 2, FRAME_COMPLETE = 3, @@ -7588,7 +7584,7 @@ pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer = *const gfxFontFeatureValueSet_FeatureValueHashKey; #[repr(u32)] #[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, } @@ -7984,23 +7980,23 @@ pub enum nsStyleUnit { } #[repr(C)] #[derive(Debug, Copy)] -pub struct _bindgen_ty_bindgen_id_183835 { +pub struct _bindgen_ty_bindgen_id_183849 { pub mInt: __BindgenUnionField, pub mFloat: __BindgenUnionField, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout__bindgen_ty_bindgen_id_183835() { - assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_183835>() , +fn bindgen_test_layout__bindgen_ty_bindgen_id_183849() { + assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_183849>() , 8usize); - assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_183835>() , + assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_183849>() , 8usize); } -impl Clone for _bindgen_ty_bindgen_id_183835 { +impl Clone for _bindgen_ty_bindgen_id_183849 { 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 * 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::() , 8usize); } #[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 @@ -9063,7 +9059,7 @@ pub struct bindgen_vtable__bindgen_id_193191 { #[repr(C)] #[derive(Debug)] pub struct IProgressObserver { - pub vtable_: *const bindgen_vtable__bindgen_id_193191, + pub vtable_: *const bindgen_vtable__bindgen_id_193205, pub _base: u64, } #[test] @@ -9085,7 +9081,7 @@ pub struct nsISupportsPriority_COMTypeInfo { } #[repr(i32)] #[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_HIGH = -10, PRIORITY_NORMAL = 0, @@ -9520,7 +9516,7 @@ fn bindgen_test_layout_nsCSSValueFloatColor() { #[derive(Debug)] pub struct nsCSSValue { pub mUnit: nsCSSUnit, - pub mValue: nsCSSValue__bindgen_ty_bindgen_id_196262, + pub mValue: nsCSSValue__bindgen_ty_bindgen_id_196276, } #[repr(C)] #[derive(Debug)] @@ -9536,7 +9532,7 @@ fn bindgen_test_layout_nsCSSValue_Array() { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSValue__bindgen_ty_bindgen_id_196262 { +pub struct nsCSSValue__bindgen_ty_bindgen_id_196276 { pub mInt: __BindgenUnionField, pub mFloat: __BindgenUnionField, pub mString: __BindgenUnionField<*mut nsStringBuffer>, @@ -9561,13 +9557,13 @@ pub struct nsCSSValue__bindgen_ty_bindgen_id_196262 { pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_196262() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_196276() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsCSSValue__bindgen_ty_bindgen_id_196262 { +impl Clone for nsCSSValue__bindgen_ty_bindgen_id_196276 { fn clone(&self) -> Self { *self } } #[test] @@ -9588,12 +9584,12 @@ fn bindgen_test_layout_nsCSSValueGradientStop() { assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] -pub struct bindgen_vtable__bindgen_id_196470 { +pub struct bindgen_vtable__bindgen_id_196484 { } #[repr(C)] #[derive(Debug, Copy)] pub struct CounterStyle { - pub vtable_: *const bindgen_vtable__bindgen_id_196470, + pub vtable_: *const bindgen_vtable__bindgen_id_196484, pub mStyle: i32, } #[test] @@ -9674,6 +9670,9 @@ fn bindgen_test_layout_nsStyleVisibility() { assert_eq!(::std::mem::size_of::() , 7usize); assert_eq!(::std::mem::align_of::() , 1usize); } +pub type RawGeckoNode = nsINode; +pub type RawGeckoElement = Element; +pub type RawGeckoDocument = nsIDocument; #[repr(C)] #[derive(Debug)] pub struct FragmentOrURL { @@ -9790,25 +9789,25 @@ pub struct nsStyleImage { pub mCachedBIData: UniquePtr>, 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>, } #[repr(C)] #[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 mGradient: __BindgenUnionField<*mut nsStyleGradient>, pub mElementId: __BindgenUnionField<*mut u16>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_198427() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_198452() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleImage__bindgen_ty_bindgen_id_198427 { +impl Clone for nsStyleImage__bindgen_ty_bindgen_id_198452 { fn clone(&self) -> Self { *self } } #[test] @@ -9859,7 +9858,7 @@ pub struct nsStyleImageLayers { } #[repr(u32)] #[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, color = 1, image = 2, @@ -10359,7 +10358,7 @@ impl Clone for nsStyleImageOrientation { #[derive(Debug, Copy)] pub struct nsTimingFunction { 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)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] @@ -10378,56 +10377,56 @@ pub enum nsTimingFunction_Type { pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction__bindgen_ty_bindgen_id_200233 { - pub mFunc: __BindgenUnionField, - pub __bindgen_anon_1: __BindgenUnionField, +pub struct nsTimingFunction__bindgen_ty_bindgen_id_200258 { + pub mFunc: __BindgenUnionField, + pub __bindgen_anon_1: __BindgenUnionField, pub bindgen_union_field: [u32; 4usize], } #[repr(C)] #[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 mY1: f32, pub mX2: f32, pub mY2: f32, } #[test] -fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200234() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200259() { + assert_eq!(::std::mem::size_of::() , 16usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } 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 } } #[repr(C)] #[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, } #[test] -fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200233__bindgen_ty_bindgen_id_200245() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200258__bindgen_ty_bindgen_id_200270() { + assert_eq!(::std::mem::size_of::() , 4usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } 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 } } #[test] -fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200233() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_200258() { + assert_eq!(::std::mem::size_of::() , 16usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } -impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_200233 { +impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_200258 { fn clone(&self) -> Self { *self } } #[test] @@ -10488,13 +10487,13 @@ fn bindgen_test_layout_StyleBasicShape() { #[repr(C)] #[derive(Debug)] pub struct StyleShapeSource { - pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_200616, + pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_200641, pub mType: StyleShapeSourceType, pub mReferenceBox: ReferenceBox, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StyleShapeSource__bindgen_ty_bindgen_id_200616 { +pub struct StyleShapeSource__bindgen_ty_bindgen_id_200641 { pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub bindgen_union_field: u64, @@ -10546,24 +10545,24 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_200700, + pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_200725, } #[repr(C)] #[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 mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_200700() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_200725() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_200700 { +impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_200725 { fn clone(&self) -> Self { *self } } #[test] @@ -10688,25 +10687,25 @@ pub enum nsStyleSVGPaintType { #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_201097, + pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_201122, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_201097 { +pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_201122 { pub mColor: __BindgenUnionField, pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_201097() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_201122() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_201097 { +impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_201122 { fn clone(&self) -> Self { *self } } #[test] @@ -10741,7 +10740,7 @@ pub struct nsStyleSVG { } #[repr(u32)] #[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, STROKE_OPACITY_SOURCE_MASK = 12, STROKE_DASHARRAY_CONTEXT = 16, @@ -10760,23 +10759,23 @@ fn bindgen_test_layout_nsStyleSVG() { pub struct nsStyleFilter { pub mType: i32, 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)] #[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 mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_201340() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_201365() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } -impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_201340 { +impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_201365 { fn clone(&self) -> Self { *self } } #[test] diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index d6d8865363b7..240c86a1ea67 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -9,7 +9,7 @@ use data::{NUM_THREADS, PerDocumentStyleData}; use env_logger; use euclid::Size2D; 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::{RawServoStyleSheetBorrowed, ServoComputedValuesBorrowed}; use gecko_bindings::bindings::{RawServoStyleSheetStrong, ServoComputedValuesStrong}; @@ -44,7 +44,7 @@ use style::stylesheets::{Origin, Stylesheet}; use style::timer::Timer; use traversal::RecalcStyleOnly; 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 @@ -126,8 +126,9 @@ pub extern "C" fn Servo_StyleWorkerThreadCount() -> u32 { } #[no_mangle] -pub extern "C" fn Servo_NodeData_Drop(data: ServoNodeDataOwned) -> () { - let _ = data.into_box::(); +pub extern "C" fn Servo_Node_ClearNodeData(node: RawGeckoNodeBorrowed) -> () { + let node = GeckoNode(node); + node.clear_data(); } #[no_mangle] diff --git a/ports/geckolib/wrapper.rs b/ports/geckolib/wrapper.rs index 8255c13755cc..fde9f10cdf7e 100644 --- a/ports/geckolib/wrapper.rs +++ b/ports/geckolib/wrapper.rs @@ -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_IsLink, Gecko_IsRootElement, Gecko_IsTextNode}; use gecko_bindings::bindings::{Gecko_IsUnvisitedLink, Gecko_IsVisitedLink}; -use gecko_bindings::bindings::{Gecko_LocalName, Gecko_Namespace, Gecko_NodeIsElement, Gecko_SetNodeData}; -use gecko_bindings::bindings::{RawGeckoDocument, RawGeckoElement, RawGeckoNode}; +use gecko_bindings::bindings::{Gecko_LocalName, Gecko_Namespace, Gecko_NodeIsElement}; use gecko_bindings::bindings::Gecko_ClassOrClassList; -use gecko_bindings::bindings::Gecko_GetNodeData; 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::{RawGeckoDocument, RawGeckoElement, RawGeckoNode}; use gecko_bindings::structs::{nsChangeHint, nsIAtom, nsStyleContext}; -use gecko_bindings::sugar::ownership::{FFIArcHelpers, HasBoxFFI, HasFFI, HasSimpleFFI}; -use gecko_bindings::sugar::ownership::Borrowed; +use gecko_bindings::structs::OpaqueStyleData; +use gecko_bindings::sugar::ownership::FFIArcHelpers; use gecko_string_cache::{Atom, Namespace, WeakAtom, WeakNamespace}; use glue::GeckoDeclarationBlock; use libc::uintptr_t; @@ -55,18 +53,21 @@ use url::Url; pub struct NonOpaqueStyleData(RefCell); -unsafe impl HasFFI for NonOpaqueStyleData { - type FFIType = ServoNodeData; -} -unsafe impl HasSimpleFFI for NonOpaqueStyleData {} -unsafe impl HasBoxFFI for NonOpaqueStyleData {} - impl NonOpaqueStyleData { pub fn new() -> Self { 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 // 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 @@ -76,18 +77,25 @@ impl NonOpaqueStyleData { pub struct GeckoNode<'ln>(pub &'ln RawGeckoNode); impl<'ln> GeckoNode<'ln> { - fn get_node_data(&self) -> Borrowed { + fn get_node_data(&self) -> Option<&NonOpaqueStyleData> { unsafe { - Borrowed::from_ffi(Gecko_GetNodeData(&*self.0)) + from_opaque_style_data(self.0.mServoData.get()).as_ref() } } pub fn initialize_data(self) { - unsafe { - if self.get_node_data().is_null() { - let ptr = Box::new(NonOpaqueStyleData::new()); - Gecko_SetNodeData(self.0, ptr.into_ffi()); - } + if self.get_node_data().is_none() { + let ptr = Box::new(NonOpaqueStyleData::new()); + debug_assert!(self.0.mServoData.get().is_null()); + 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 { // Return true unconditionally if we're not yet styled. This is a hack // and should go away soon. - if self.get_node_data().is_null() { + if self.get_node_data().is_none() { return true; } @@ -229,7 +237,7 @@ impl<'ln> TNode for GeckoNode<'ln> { fn has_dirty_descendants(&self) -> bool { // Return true unconditionally if we're not yet styled. This is a hack // and should go away soon. - if self.get_node_data().is_null() { + if self.get_node_data().is_none() { return true; } let flags = unsafe { Gecko_GetNodeFlags(self.0) }; @@ -257,18 +265,18 @@ impl<'ln> TNode for GeckoNode<'ln> { #[inline(always)] 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) } #[inline(always)] fn borrow_data(&self) -> Option> { - self.get_node_data().borrow_opt().map(|d| d.0.borrow()) + self.get_node_data().as_ref().map(|d| d.0.borrow()) } #[inline(always)] fn mutate_data(&self) -> Option> { - 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 {