diff options
19 files changed, 3241 insertions, 1115 deletions
diff --git a/components/layout/flow.rs b/components/layout/flow.rs index be71745883f..3ce8de5ec98 100644 --- a/components/layout/flow.rs +++ b/components/layout/flow.rs @@ -1119,7 +1119,7 @@ impl BaseFlow { /// /// These flags are initially set during flow construction. They only need to be updated here /// if they are based on properties that can change without triggering `RECONSTRUCT_FLOW`. - pub fn update_flags_if_needed(&mut self, style: &ServoComputedValues) { + pub fn update_flags_if_needed(&mut self, style: &ComputedValues) { // For absolutely-positioned flows, changes to top/bottom/left/right can cause these flags // to get out of date: if self.restyle_damage.contains(REFLOW_OUT_OF_FLOW) { diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index cf4aef91049..00e73df2b25 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -78,7 +78,7 @@ use style::selector_parser::{AttrValue as SelectorAttrValue, NonTSPseudoClass, P use style::selector_parser::{PseudoElement, SelectorImpl, extended_filtering}; use style::shared_lock::{SharedRwLock as StyleSharedRwLock, Locked as StyleLocked}; use style::str::is_whitespace; -use style::stylearc::Arc; +use style::stylearc::{Arc, ArcBorrow}; pub unsafe fn drop_style_and_layout_data(data: OpaqueStyleAndLayoutData) { let ptr: *mut StyleData = data.ptr.get(); @@ -412,9 +412,9 @@ impl<'le> TElement for ServoLayoutElement<'le> { ServoLayoutNode::from_layout_js(self.element.upcast()) } - fn style_attribute(&self) -> Option<&Arc<StyleLocked<PropertyDeclarationBlock>>> { + fn style_attribute(&self) -> Option<ArcBorrow<StyleLocked<PropertyDeclarationBlock>>> { unsafe { - (*self.element.style_attribute()).as_ref() + (*self.element.style_attribute()).as_ref().map(|x| x.borrow_arc()) } } diff --git a/components/script/dom/cssrulelist.rs b/components/script/dom/cssrulelist.rs index 28b1779be29..78ec43e5c51 100644 --- a/components/script/dom/cssrulelist.rs +++ b/components/script/dom/cssrulelist.rs @@ -90,13 +90,15 @@ impl CSSRuleList { let index = idx as usize; let parent_stylesheet = self.parent_stylesheet.style_stylesheet(); - let new_rule = - css_rules.insert_rule(&parent_stylesheet.shared_lock, - rule, - &parent_stylesheet.contents, - index, - nested, - None)?; + let new_rule = css_rules.with_raw_offset_arc(|arc| { + arc.insert_rule(&parent_stylesheet.shared_lock, + rule, + &parent_stylesheet.contents, + index, + nested, + None) + })?; + let parent_stylesheet = &*self.parent_stylesheet; let dom_rule = CSSRule::new_specific(&window, parent_stylesheet, new_rule); diff --git a/components/script_layout_interface/wrapper_traits.rs b/components/script_layout_interface/wrapper_traits.rs index a32a6e6b99c..67506a154d4 100644 --- a/components/script_layout_interface/wrapper_traits.rs +++ b/components/script_layout_interface/wrapper_traits.rs @@ -416,7 +416,7 @@ pub trait ThreadSafeLayoutElement: Clone + Copy + Sized + Debug + &style_pseudo, Some(data.styles.primary()), CascadeFlags::empty(), - &ServoMetricsProvider) + &ServoMetricsProvider, (), ()) .clone() } PseudoElementCascadeType::Lazy => { @@ -428,7 +428,7 @@ pub trait ThreadSafeLayoutElement: Clone + Copy + Sized + Debug + RuleInclusion::All, data.styles.primary(), /* is_probe = */ false, - &ServoMetricsProvider) + &ServoMetricsProvider, (), ()) .unwrap() .clone() } diff --git a/components/style/gecko/arc_types.rs b/components/style/gecko/arc_types.rs index 352cd7b7e4d..990a4511223 100644 --- a/components/style/gecko/arc_types.rs +++ b/components/style/gecko/arc_types.rs @@ -10,14 +10,15 @@ use gecko_bindings::bindings::{RawServoImportRule, RawServoSupportsRule}; use gecko_bindings::bindings::{RawServoKeyframe, RawServoKeyframesRule}; +use gecko_bindings::bindings::RawServoMediaRule; use gecko_bindings::bindings::{RawServoNamespaceRule, RawServoPageRule}; -use gecko_bindings::bindings::{RawServoRuleNode, RawServoRuleNodeStrong, RawServoDocumentRule, RawServoMediaRule}; -use gecko_bindings::bindings::{ServoComputedValues, ServoCssRules}; +use gecko_bindings::bindings::{RawServoRuleNode, RawServoRuleNodeStrong, RawServoDocumentRule}; +use gecko_bindings::bindings::ServoCssRules; use gecko_bindings::structs::{RawServoAnimationValue, RawServoDeclarationBlock, RawServoStyleRule, RawServoMediaList}; -use gecko_bindings::structs::RawServoStyleSheetContents; +use gecko_bindings::structs::{RawServoStyleSheetContents, ServoComputedValues, ServoStyleContext}; use gecko_bindings::sugar::ownership::{HasArcFFI, HasFFI}; use media_queries::MediaList; -use properties::{ComputedValues, PropertyDeclarationBlock}; +use properties::{ComputedValues, ComputedValuesInner, PropertyDeclarationBlock}; use properties::animated_properties::AnimationValue; use rule_tree::StrongRuleNode; use shared_lock::Locked; @@ -51,9 +52,12 @@ impl_arc_ffi!(Locked<CssRules> => ServoCssRules impl_arc_ffi!(StylesheetContents => RawServoStyleSheetContents [Servo_StyleSheetContents_AddRef, Servo_StyleSheetContents_Release]); -impl_arc_ffi!(ComputedValues => ServoComputedValues +impl_arc_ffi!(ComputedValuesInner => ServoComputedValues [Servo_ComputedValues_AddRef, Servo_ComputedValues_Release]); +impl_arc_ffi!(ComputedValues => ServoStyleContext + [Servo_StyleContext_AddRef, Servo_StyleContext_Release]); + impl_arc_ffi!(Locked<PropertyDeclarationBlock> => RawServoDeclarationBlock [Servo_DeclarationBlock_AddRef, Servo_DeclarationBlock_Release]); diff --git a/components/style/gecko/generated/bindings.rs b/components/style/gecko/generated/bindings.rs index d9c09666859..1202c3cd866 100644 --- a/components/style/gecko/generated/bindings.rs +++ b/components/style/gecko/generated/bindings.rs @@ -5,6 +5,8 @@ use gecko_bindings::structs::nsStyleTransformMatrix; use gecko_bindings::structs::nsTArray; type nsACString_internal = nsACString; type nsAString_internal = nsAString; +pub type ServoStyleContextBorrowed<'a> = &'a ServoStyleContext; +pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>; use gecko_bindings::structs::mozilla::css::GridTemplateAreasValue; use gecko_bindings::structs::mozilla::css::ErrorReporter; use gecko_bindings::structs::mozilla::css::ImageValue; @@ -215,6 +217,9 @@ use gecko_bindings::structs::nsresult; use gecko_bindings::structs::Loader; use gecko_bindings::structs::LoaderReusableStyleSheets; use gecko_bindings::structs::ServoStyleSheet; +use gecko_bindings::structs::ServoComputedValues; +use gecko_bindings::structs::ServoStyleContext; +use gecko_bindings::structs::ServoStyleContextStrong; use gecko_bindings::structs::EffectCompositor_CascadeLevel; use gecko_bindings::structs::UpdateAnimationsTasks; use gecko_bindings::structs::ParsingMode; @@ -317,8 +322,6 @@ pub type RawServoStyleSheetContentsBorrowedOrNull<'a> = Option<&'a RawServoStyle pub type ServoComputedValuesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoComputedValues>; pub type ServoComputedValuesBorrowed<'a> = &'a ServoComputedValues; pub type ServoComputedValuesBorrowedOrNull<'a> = Option<&'a ServoComputedValues>; -enum ServoComputedValuesVoid { } -pub struct ServoComputedValues(ServoComputedValuesVoid); pub type RawServoDeclarationBlockStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoDeclarationBlock>; pub type RawServoDeclarationBlockBorrowed<'a> = &'a RawServoDeclarationBlock; pub type RawServoDeclarationBlockBorrowedOrNull<'a> = Option<&'a RawServoDeclarationBlock>; @@ -529,6 +532,19 @@ extern "C" { *mut nsTArray<*mut nsIContent>); } extern "C" { + pub fn Gecko_ServoStyleContext_Init(context: *mut ServoStyleContext, + parent_context: + ServoStyleContextBorrowedOrNull, + pres_context: + RawGeckoPresContextBorrowed, + values: ServoComputedValuesStrong, + pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom); +} +extern "C" { + pub fn Gecko_ServoStyleContext_Destroy(context: *mut ServoStyleContext); +} +extern "C" { pub fn Gecko_ConstructStyleChildrenIterator(aElement: RawGeckoElementBorrowed, aIterator: @@ -755,9 +771,9 @@ extern "C" { extern "C" { pub fn Gecko_UpdateAnimations(aElementOrPseudo: RawGeckoElementBorrowed, aOldComputedValues: - ServoComputedValuesBorrowedOrNull, + ServoStyleContextBorrowedOrNull, aComputedValues: - ServoComputedValuesBorrowedOrNull, + ServoStyleContextBorrowedOrNull, aTasks: UpdateAnimationsTasks); } extern "C" { @@ -1957,10 +1973,10 @@ extern "C" { pub fn Servo_StyleSet_ResolveForDeclarations(set: RawServoStyleSetBorrowed, parent_style: - ServoComputedValuesBorrowedOrNull, + ServoStyleContextBorrowedOrNull, declarations: RawServoDeclarationBlockBorrowed) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_StyleSet_MightHaveAttributeDependency(set: @@ -2661,23 +2677,27 @@ extern "C" { } extern "C" { pub fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null: - ServoComputedValuesBorrowedOrNull, + ServoStyleContextBorrowedOrNull, + pseudo_type: + CSSPseudoElementType, pseudo_tag: *mut nsIAtom, set: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_ComputedValues_Inherit(set: RawServoStyleSetBorrowed, + pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom, parent_style: - ServoComputedValuesBorrowedOrNull, + ServoStyleContextBorrowedOrNull, target: InheritTarget) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_ComputedValues_GetVisitedStyle(values: ServoComputedValuesBorrowed) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_ComputedValues_GetStyleBits(values: @@ -2698,6 +2718,16 @@ extern "C" { RawGeckoServoStyleRuleListBorrowedMut); } extern "C" { + pub fn Servo_StyleContext_NewContext(values: ServoComputedValuesBorrowed, + parent: + ServoStyleContextBorrowedOrNull, + pres_context: + RawGeckoPresContextBorrowed, + pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom) + -> ServoStyleContextStrong; +} +extern "C" { pub fn Servo_Initialize(dummy_url_data: *mut RawGeckoURLExtraData); } extern "C" { @@ -2716,20 +2746,22 @@ extern "C" { extern "C" { pub fn Servo_ResolveStyle(element: RawGeckoElementBorrowed, set: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed, pseudo_type: CSSPseudoElementType, - is_probe: bool, + pseudo_tag: *mut nsIAtom, is_probe: bool, inherited_style: ServoComputedValuesBorrowedOrNull, + parent_style_context: + ServoStyleContextBorrowedOrNull, set: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_SetExplicitStyle(element: RawGeckoElementBorrowed, - primary_style: ServoComputedValuesBorrowed); + primary_style: ServoStyleContextBorrowed); } extern "C" { pub fn Servo_HasAuthorSpecifiedRules(element: RawGeckoElementBorrowed, @@ -2739,11 +2771,14 @@ extern "C" { extern "C" { pub fn Servo_ResolveStyleLazily(element: RawGeckoElementBorrowed, pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom, + parent_style_context: + ServoStyleContextBorrowedOrNull, rule_inclusion: StyleRuleInclusion, snapshots: *const ServoElementSnapshotTable, set: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed, @@ -2765,12 +2800,12 @@ extern "C" { element: RawGeckoElementBorrowed, existing_style: - ServoComputedValuesBorrowed, + ServoStyleContextBorrowed, snapshots: *const ServoElementSnapshotTable, pseudo_type: CSSPseudoElementType) - -> ServoComputedValuesStrong; + -> ServoStyleContextStrong; } extern "C" { pub fn Servo_SerializeFontValueForCanvas(declarations: diff --git a/components/style/gecko/generated/pseudo_element_definition.rs b/components/style/gecko/generated/pseudo_element_definition.rs index 8a1382b714d..9760ae46142 100644 --- a/components/style/gecko/generated/pseudo_element_definition.rs +++ b/components/style/gecko/generated/pseudo_element_definition.rs @@ -689,6 +689,45 @@ impl PseudoElement { } } + + /// Construct a `CSSPseudoElementType` from a pseudo-element + #[inline] + pub fn pseudo_type(&self) -> CSSPseudoElementType { + match *self { + PseudoElement::After => CSSPseudoElementType::after, + PseudoElement::Before => CSSPseudoElementType::before, + PseudoElement::Backdrop => CSSPseudoElementType::backdrop, + PseudoElement::Cue => CSSPseudoElementType::cue, + PseudoElement::FirstLetter => CSSPseudoElementType::firstLetter, + PseudoElement::FirstLine => CSSPseudoElementType::firstLine, + PseudoElement::MozSelection => CSSPseudoElementType::mozSelection, + PseudoElement::MozFocusInner => CSSPseudoElementType::mozFocusInner, + PseudoElement::MozFocusOuter => CSSPseudoElementType::mozFocusOuter, + PseudoElement::MozListBullet => CSSPseudoElementType::mozListBullet, + PseudoElement::MozListNumber => CSSPseudoElementType::mozListNumber, + PseudoElement::MozMathAnonymous => CSSPseudoElementType::mozMathAnonymous, + PseudoElement::MozNumberWrapper => CSSPseudoElementType::mozNumberWrapper, + PseudoElement::MozNumberText => CSSPseudoElementType::mozNumberText, + PseudoElement::MozNumberSpinBox => CSSPseudoElementType::mozNumberSpinBox, + PseudoElement::MozNumberSpinUp => CSSPseudoElementType::mozNumberSpinUp, + PseudoElement::MozNumberSpinDown => CSSPseudoElementType::mozNumberSpinDown, + PseudoElement::MozProgressBar => CSSPseudoElementType::mozProgressBar, + PseudoElement::MozRangeTrack => CSSPseudoElementType::mozRangeTrack, + PseudoElement::MozRangeProgress => CSSPseudoElementType::mozRangeProgress, + PseudoElement::MozRangeThumb => CSSPseudoElementType::mozRangeThumb, + PseudoElement::MozMeterBar => CSSPseudoElementType::mozMeterBar, + PseudoElement::MozPlaceholder => CSSPseudoElementType::mozPlaceholder, + PseudoElement::Placeholder => CSSPseudoElementType::placeholder, + PseudoElement::MozColorSwatch => CSSPseudoElementType::mozColorSwatch, + _ => CSSPseudoElementType::NotPseudo + } + } + + /// Get a PseudoInfo for a pseudo + pub fn pseudo_info(&self) -> (*mut structs::nsIAtom, CSSPseudoElementType) { + (self.atom().as_ptr(), self.pseudo_type()) + } + /// Construct a pseudo-element from an anonymous box `Atom`. #[inline] pub fn from_anon_box_atom(atom: &Atom) -> Option<Self> { diff --git a/components/style/gecko/generated/structs_debug.rs b/components/style/gecko/generated/structs_debug.rs index 3bebc33e413..c3235b1da10 100644 --- a/components/style/gecko/generated/structs_debug.rs +++ b/components/style/gecko/generated/structs_debug.rs @@ -16,6 +16,7 @@ pub type ServoRuleNode = Option<::rule_tree::StrongRuleNode>; pub type ServoVisitedStyle = Option<::stylearc::Arc<::properties::ComputedValues>>; pub type ServoComputedValueFlags = ::properties::computed_value_flags::ComputedValueFlags; pub type ServoRawOffsetArc<T> = ::stylearc::RawOffsetArc<T>; +pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<ServoStyleContext>; #[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)] pub mod root { @@ -4086,7 +4087,6 @@ pub mod root { ) , "::" , stringify ! ( mEmpty ) )); } #[repr(C)] - #[derive(Debug)] pub struct Element { pub _base: root::mozilla::dom::FragmentOrElement, pub mState: root::mozilla::EventStates, @@ -4232,7 +4232,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct NodeInfo { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub _mOwningThread: root::nsAutoOwningThread, @@ -5305,7 +5304,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct Attr { pub _base: root::nsIAttribute, pub _base_1: root::nsIDOMAttr, @@ -5764,7 +5762,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct FragmentOrElement { pub _base: root::nsIContent, pub mRefCnt: root::nsCycleCollectingAutoRefCnt, @@ -5804,7 +5801,6 @@ pub mod root { * accessed through the DOM. */ #[repr(C)] - #[derive(Debug)] pub struct FragmentOrElement_nsDOMSlots { pub _base: root::nsINode_nsSlots, /** @@ -6196,7 +6192,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct DOMIntersectionObserverEntry { pub _base: root::nsISupports, pub _base_1: root::nsWrapperCache, @@ -6346,7 +6341,6 @@ pub mod root { ! ( mValue ) )); } #[repr(C)] - #[derive(Debug)] pub struct IntersectionObserverInit { pub _base: root::mozilla::dom::DictionaryBase, pub mRoot: root::RefPtr<root::mozilla::dom::Element>, @@ -6401,7 +6395,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct DestinationInsertionPointList { pub _base: root::nsINodeList, pub mRefCnt: root::nsCycleCollectingAutoRefCnt, @@ -7561,6 +7554,9 @@ pub mod root { } #[repr(i32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum LazyComputeBehavior { Allow = 0, Assert = 1, } + #[repr(i32)] + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum TraversalRootBehavior { Normal = 0, UnstyledChildrenOnly = 1, @@ -8028,254 +8024,6 @@ pub mod root { "Alignment of field: " , stringify ! ( GeckoEffects ) , "::" , stringify ! ( gecko ) )); } - /** - * We want C++ to be abe to read the style struct fields of ComputedValues - * so we define this type on the C++ side and use the bindgenned version - * on the Rust side. - * - * C++ just sees pointers and opaque types here, so bindgen will attempt to generate a Copy - * impl. This will fail because the bindgenned version contains owned types. Opt out. - * - * <div rustbindgen nocopy></div> - */ - #[repr(C)] - #[derive(Debug)] - pub struct ServoComputedValues2 { - pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>, - pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>, - pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>, - pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>, - pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>, - pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>, - pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>, - pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>, - pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>, - pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>, - pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>, - pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>, - pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>, - pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>, - pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>, - pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>, - pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>, - pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>, - pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>, - pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>, - pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>, - pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>, - pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>, - pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap, - pub writing_mode: ::gecko_bindings::structs::ServoWritingMode, - pub font_computation_data: ::gecko_bindings::structs::ServoFontComputationData, - /// The rule node representing the ordered list of rules matched for this - /// node. Can be None for default values and text nodes. This is - /// essentially an optimization to avoid referencing the root rule node. - pub rules: ::gecko_bindings::structs::ServoRuleNode, - /// The element's computed values if visited, only computed if there's a - /// relevant link for this element. A element's "relevant link" is the - /// element being matched if it is a link or the nearest ancestor link. - pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle, - pub flags: ::gecko_bindings::structs::ServoComputedValueFlags, - } - #[test] - fn bindgen_test_layout_ServoComputedValues2() { - assert_eq!(::std::mem::size_of::<ServoComputedValues2>() , - 232usize , concat ! ( - "Size of: " , stringify ! ( ServoComputedValues2 ) )); - assert_eq! (::std::mem::align_of::<ServoComputedValues2>() , - 8usize , concat ! ( - "Alignment of " , stringify ! ( ServoComputedValues2 ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Font - as * const _ as usize } , 0usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Font ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Color - as * const _ as usize } , 8usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Color ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . List - as * const _ as usize } , 16usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( List ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Text - as * const _ as usize } , 24usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Text ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Visibility as * const _ as usize } , 32usize , concat - ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - Visibility ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - UserInterface as * const _ as usize } , 40usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - UserInterface ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - TableBorder as * const _ as usize } , 48usize , concat - ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - TableBorder ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . SVG as - * const _ as usize } , 56usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( SVG ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Background as * const _ as usize } , 64usize , concat - ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - Background ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Position as * const _ as usize } , 72usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Position - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - TextReset as * const _ as usize } , 80usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - TextReset ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Display as * const _ as usize } , 88usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Display - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Content as * const _ as usize } , 96usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Content - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - UIReset as * const _ as usize } , 104usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( UIReset - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Table - as * const _ as usize } , 112usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Table ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Margin - as * const _ as usize } , 120usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Margin ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Padding as * const _ as usize } , 128usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Padding - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Border - as * const _ as usize } , 136usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Border ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Outline as * const _ as usize } , 144usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Outline - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . XUL as - * const _ as usize } , 152usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( XUL ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - SVGReset as * const _ as usize } , 160usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( SVGReset - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Column - as * const _ as usize } , 168usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Column ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Effects as * const _ as usize } , 176usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Effects - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - custom_properties as * const _ as usize } , 184usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - custom_properties ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - writing_mode as * const _ as usize } , 192usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - writing_mode ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - font_computation_data as * const _ as usize } , - 196usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - font_computation_data ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . rules - as * const _ as usize } , 208usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( rules ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - visited_style as * const _ as usize } , 216usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - visited_style ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . flags - as * const _ as usize } , 224usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( flags ) - )); - } #[repr(u8)] /** * Enumeration that represents one of the two supported style system backends. @@ -8586,6 +8334,78 @@ pub mod root { CORS_USE_CREDENTIALS = 2, } #[repr(C)] + pub struct CSSStyleSheet { + pub _base: root::mozilla::StyleSheet, + pub mRuleCollection: root::RefPtr<root::CSSRuleListImpl>, + pub mInRuleProcessorCache: bool, + pub mScopeElement: root::RefPtr<root::mozilla::dom::Element>, + pub mRuleProcessors: *mut u8, + } + pub use self::super::super::root::mozilla::net::ReferrerPolicy as + CSSStyleSheet_ReferrerPolicy; + #[repr(C)] + #[derive(Debug, Copy)] + pub struct CSSStyleSheet_cycleCollection { + pub _base: root::mozilla::StyleSheet_cycleCollection, + } + #[test] + fn bindgen_test_layout_CSSStyleSheet_cycleCollection() { + assert_eq!(::std::mem::size_of::<CSSStyleSheet_cycleCollection>() + , 16usize , concat ! ( + "Size of: " , stringify ! ( + CSSStyleSheet_cycleCollection ) )); + assert_eq! (::std::mem::align_of::<CSSStyleSheet_cycleCollection>() + , 8usize , concat ! ( + "Alignment of " , stringify ! ( + CSSStyleSheet_cycleCollection ) )); + } + impl Clone for CSSStyleSheet_cycleCollection { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct CSSStyleSheet_COMTypeInfo { + pub _address: u8, + } + extern "C" { + #[link_name = + "_ZN7mozilla13CSSStyleSheet21_cycleCollectorGlobalE"] + pub static mut CSSStyleSheet__cycleCollectorGlobal: + root::mozilla::CSSStyleSheet_cycleCollection; + } + #[test] + fn bindgen_test_layout_CSSStyleSheet() { + assert_eq!(::std::mem::size_of::<CSSStyleSheet>() , 176usize , + concat ! ( "Size of: " , stringify ! ( CSSStyleSheet ) + )); + assert_eq! (::std::mem::align_of::<CSSStyleSheet>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( CSSStyleSheet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . + mRuleCollection as * const _ as usize } , 144usize , + concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mRuleCollection ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . + mInRuleProcessorCache as * const _ as usize } , + 152usize , concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mInRuleProcessorCache ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . mScopeElement + as * const _ as usize } , 160usize , concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mScopeElement ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . + mRuleProcessors as * const _ as usize } , 168usize , + concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mRuleProcessors ) )); + } + #[repr(C)] #[derive(Debug)] pub struct ServoStyleSheet { pub _base: root::mozilla::StyleSheet, @@ -8827,10 +8647,135 @@ pub mod root { NotPseudo = 28, MAX = 29, } + /** + * The set of style sheets that apply to a document, backed by a Servo + * Stylist. A ServoStyleSet contains ServoStyleSheets. + */ #[repr(C)] - #[derive(Debug, Copy, Clone)] pub struct ServoStyleSet { - _unused: [u8; 0], + pub mPresContext: *mut root::nsPresContext, + pub mRawSet: root::mozilla::UniquePtr<root::RawServoStyleSet>, + pub mSheets: [u64; 9usize], + pub mAuthorStyleDisabled: bool, + pub mStylistState: root::mozilla::StylistState, + pub mUserFontSetUpdateGeneration: u64, + pub mUserFontCacheUpdateGeneration: u32, + pub mNeedsRestyleAfterEnsureUniqueInner: bool, + pub mNonInheritingStyleContexts: [u64; 5usize], + pub mPostTraversalTasks: root::nsTArray<root::mozilla::PostTraversalTask>, + pub mStyleRuleMap: root::RefPtr<root::mozilla::ServoStyleRuleMap>, + pub mBindingManager: root::RefPtr<root::nsBindingManager>, + } + pub type ServoStyleSet_SnapshotTable = + root::mozilla::ServoElementSnapshotTable; + #[repr(C)] + #[derive(Debug)] + pub struct ServoStyleSet_AutoSetInServoTraversal { + pub mSet: *mut root::mozilla::ServoStyleSet, + } + #[test] + fn bindgen_test_layout_ServoStyleSet_AutoSetInServoTraversal() { + assert_eq!(::std::mem::size_of::<ServoStyleSet_AutoSetInServoTraversal>() + , 8usize , concat ! ( + "Size of: " , stringify ! ( + ServoStyleSet_AutoSetInServoTraversal ) )); + assert_eq! (::std::mem::align_of::<ServoStyleSet_AutoSetInServoTraversal>() + , 8usize , concat ! ( + "Alignment of " , stringify ! ( + ServoStyleSet_AutoSetInServoTraversal ) )); + assert_eq! (unsafe { + & ( + * ( 0 as * const ServoStyleSet_AutoSetInServoTraversal + ) ) . mSet as * const _ as usize } , 0usize , concat ! + ( + "Alignment of field: " , stringify ! ( + ServoStyleSet_AutoSetInServoTraversal ) , "::" , + stringify ! ( mSet ) )); + } + extern "C" { + #[link_name = "_ZN7mozilla13ServoStyleSet17sInServoTraversalE"] + pub static mut ServoStyleSet_sInServoTraversal: + *mut root::mozilla::ServoStyleSet; + } + #[test] + fn bindgen_test_layout_ServoStyleSet() { + assert_eq!(::std::mem::size_of::<ServoStyleSet>() , 176usize , + concat ! ( "Size of: " , stringify ! ( ServoStyleSet ) + )); + assert_eq! (::std::mem::align_of::<ServoStyleSet>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( ServoStyleSet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mPresContext + as * const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mPresContext ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mRawSet as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mRawSet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mSheets as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mSheets ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mAuthorStyleDisabled as * const _ as usize } , 88usize + , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mAuthorStyleDisabled ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mStylistState + as * const _ as usize } , 89usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mStylistState ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mUserFontSetUpdateGeneration as * const _ as usize } , + 96usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mUserFontSetUpdateGeneration ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mUserFontCacheUpdateGeneration as * const _ as usize } + , 104usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mUserFontCacheUpdateGeneration + ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mNeedsRestyleAfterEnsureUniqueInner as * const _ as + usize } , 108usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( + mNeedsRestyleAfterEnsureUniqueInner ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mNonInheritingStyleContexts as * const _ as usize } , + 112usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mNonInheritingStyleContexts ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mPostTraversalTasks as * const _ as usize } , 152usize + , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mPostTraversalTasks ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mStyleRuleMap + as * const _ as usize } , 160usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mStyleRuleMap ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mBindingManager as * const _ as usize } , 168usize , + concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mBindingManager ) )); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -10899,6 +10844,36 @@ pub mod root { } #[repr(C)] #[derive(Debug)] + pub struct ServoStyleContext { + pub _base: root::nsStyleContext, + pub mPresContext: *mut root::nsPresContext, + pub mSource: root::RefPtr<root::ServoComputedValues>, + } + #[test] + fn bindgen_test_layout_ServoStyleContext() { + assert_eq!(::std::mem::size_of::<ServoStyleContext>() , 56usize , + concat ! ( + "Size of: " , stringify ! ( ServoStyleContext ) )); + assert_eq! (::std::mem::align_of::<ServoStyleContext>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( ServoStyleContext ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleContext ) ) . + mPresContext as * const _ as usize } , 40usize , + concat ! ( + "Alignment of field: " , stringify ! ( + ServoStyleContext ) , "::" , stringify ! ( + mPresContext ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleContext ) ) . mSource + as * const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( + ServoStyleContext ) , "::" , stringify ! ( mSource ) + )); + } + #[repr(C)] + #[derive(Debug)] pub struct AnimationPropertySegment { pub mFromKey: f32, pub mToKey: f32, @@ -12145,7 +12120,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct PseudoElementHashEntry { pub _base: root::PLDHashEntryHdr, pub mElement: root::RefPtr<root::mozilla::dom::Element>, @@ -12309,6 +12283,76 @@ pub mod root { "Alignment of field: " , stringify ! ( ServoMediaList ) , "::" , stringify ! ( mRawList ) )); } + /** + * A PostTraversalTask is a task to be performed immediately after a Servo + * traversal. There are just a few tasks we need to perform, so we use this + * class rather than Runnables, to avoid virtual calls and some allocations. + * + * A PostTraversalTask is only safe to run immediately after the Servo + * traversal, since it can hold raw pointers to DOM objects. + */ + #[repr(C)] + #[derive(Debug, Copy)] + pub struct PostTraversalTask { + pub mType: root::mozilla::PostTraversalTask_Type, + pub mTarget: *mut ::std::os::raw::c_void, + pub mResult: root::nsresult, + } + #[repr(i32)] + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum PostTraversalTask_Type { + ResolveFontFaceLoadedPromise = 0, + RejectFontFaceLoadedPromise = 1, + DispatchLoadingEventAndReplaceReadyPromise = 2, + DispatchFontFaceSetCheckLoadingFinishedAfterDelay = 3, + LoadFontEntry = 4, + } + #[test] + fn bindgen_test_layout_PostTraversalTask() { + assert_eq!(::std::mem::size_of::<PostTraversalTask>() , 24usize , + concat ! ( + "Size of: " , stringify ! ( PostTraversalTask ) )); + assert_eq! (::std::mem::align_of::<PostTraversalTask>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( PostTraversalTask ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const PostTraversalTask ) ) . mType as + * const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( + PostTraversalTask ) , "::" , stringify ! ( mType ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const PostTraversalTask ) ) . mTarget + as * const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( + PostTraversalTask ) , "::" , stringify ! ( mTarget ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const PostTraversalTask ) ) . mResult + as * const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( + PostTraversalTask ) , "::" , stringify ! ( mResult ) + )); + } + impl Clone for PostTraversalTask { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct ServoStyleRuleMap { + _unused: [u8; 0], + } + #[repr(u8)] + /** + * A few flags used to track which kind of stylist state we may need to + * update. + */ + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum StylistState { + NotDirty = 0, + StyleSheetsDirty = 1, + FullyDirty = 2, + } #[repr(C)] #[derive(Debug)] pub struct CSSFontFaceDescriptors { @@ -17789,7 +17833,6 @@ pub mod root { APPEND_UNSCROLLED_ONLY = 4, } #[repr(C)] - #[derive(Debug)] pub struct nsIPresShell_PointerCaptureInfo { pub mPendingContent: root::nsCOMPtr<root::nsIContent>, pub mOverrideContent: root::nsCOMPtr<root::nsIContent>, @@ -20923,6 +20966,214 @@ pub mod root { "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mMixBlendMode ) )); } + /** + * We want C++ to be abe to read the style struct fields of ComputedValues + * so we define this type on the C++ side and use the bindgenned version + * on the Rust side. + * + * C++ just sees pointers and opaque types here, so bindgen will attempt to generate a Copy + * impl. This will fail because the bindgenned version contains owned types. Opt out. + * + * <div rustbindgen nocopy></div> + */ + #[repr(C)] + #[derive(Debug)] + pub struct ServoComputedValues { + pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>, + pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>, + pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>, + pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>, + pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>, + pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>, + pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>, + pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>, + pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>, + pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>, + pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>, + pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>, + pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>, + pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>, + pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>, + pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>, + pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>, + pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>, + pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>, + pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>, + pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>, + pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>, + pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>, + pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap, + pub writing_mode: ::gecko_bindings::structs::ServoWritingMode, + pub font_computation_data: ::gecko_bindings::structs::ServoFontComputationData, + /// The rule node representing the ordered list of rules matched for this + /// node. Can be None for default values and text nodes. This is + /// essentially an optimization to avoid referencing the root rule node. + pub rules: ::gecko_bindings::structs::ServoRuleNode, + /// The element's computed values if visited, only computed if there's a + /// relevant link for this element. A element's "relevant link" is the + /// element being matched if it is a link or the nearest ancestor link. + pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle, + pub flags: ::gecko_bindings::structs::ServoComputedValueFlags, + } + #[test] + fn bindgen_test_layout_ServoComputedValues() { + assert_eq!(::std::mem::size_of::<ServoComputedValues>() , 232usize , + concat ! ( + "Size of: " , stringify ! ( ServoComputedValues ) )); + assert_eq! (::std::mem::align_of::<ServoComputedValues>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( ServoComputedValues ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Font as * + const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Font ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Color as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Color ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . List as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( List ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Text as * + const _ as usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Text ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Visibility + as * const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Visibility ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + UserInterface as * const _ as usize } , 40usize , concat ! + ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( UserInterface ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . TableBorder + as * const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( TableBorder ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . SVG as * + const _ as usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( SVG ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Background + as * const _ as usize } , 64usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Background ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Position as + * const _ as usize } , 72usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Position ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . TextReset + as * const _ as usize } , 80usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( TextReset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Display as + * const _ as usize } , 88usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Display ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Content as + * const _ as usize } , 96usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Content ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . UIReset as + * const _ as usize } , 104usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( UIReset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Table as * + const _ as usize } , 112usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Table ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Margin as * + const _ as usize } , 120usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Margin ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Padding as + * const _ as usize } , 128usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Padding ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Border as * + const _ as usize } , 136usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Border ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Outline as + * const _ as usize } , 144usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Outline ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . XUL as * + const _ as usize } , 152usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( XUL ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . SVGReset as + * const _ as usize } , 160usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( SVGReset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Column as * + const _ as usize } , 168usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Column ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Effects as + * const _ as usize } , 176usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Effects ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + custom_properties as * const _ as usize } , 184usize , + concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( custom_properties ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + writing_mode as * const _ as usize } , 192usize , concat ! + ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( writing_mode ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + font_computation_data as * const _ as usize } , 196usize , + concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( font_computation_data ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . rules as * + const _ as usize } , 208usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( rules ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + visited_style as * const _ as usize } , 216usize , concat + ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( visited_style ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . flags as * + const _ as usize } , 224usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( flags ) )); + } #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum WeakMapTraceKind { @@ -21466,7 +21717,6 @@ pub mod root { * of nsIContent children and provides access to them. */ #[repr(C)] - #[derive(Debug)] pub struct nsINode { pub _base: root::mozilla::dom::EventTarget, pub mNodeInfo: root::RefPtr<root::mozilla::dom::NodeInfo>, @@ -25608,10 +25858,144 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] - pub struct nsBindingManager { + pub struct nsCSSRuleProcessor { _unused: [u8; 0], } #[repr(C)] + pub struct nsBindingManager { + pub _base: root::nsStubMutationObserver, + pub mRefCnt: root::nsCycleCollectingAutoRefCnt, + pub _mOwningThread: root::nsAutoOwningThread, + pub mBoundContentSet: u64, + pub mWrapperTable: u64, + pub mDocumentTable: u64, + pub mLoadingDocTable: u64, + pub mAttachedStack: root::nsBindingList, + pub mProcessingAttachedStack: bool, + pub mDestroyed: bool, + pub mAttachedStackSizeOnOutermost: u32, + pub mProcessAttachedQueueEvent: u64, + pub mDocument: *mut root::nsIDocument, + } + pub type nsBindingManager_HasThreadSafeRefCnt = root::mozilla::FalseType; + #[repr(u32)] + /** + * Notify the binding manager that an element + * has been removed from its document, + * so that it can update any bindings or + * nsIAnonymousContentCreator-created anonymous + * content that may depend on the document. + * @param aContent the element that's being moved + * @param aOldDocument the old document in which the + * content resided. + * @param aDestructorHandling whether or not to run the possible XBL + * destructor. + */ + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum nsBindingManager_DestructorHandling { + eRunDtor = 0, + eDoNotRunDtor = 1, + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsBindingManager_cycleCollection { + pub _base: root::nsXPCOMCycleCollectionParticipant, + } + #[test] + fn bindgen_test_layout_nsBindingManager_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsBindingManager_cycleCollection>() , + 16usize , concat ! ( + "Size of: " , stringify ! ( + nsBindingManager_cycleCollection ) )); + assert_eq! (::std::mem::align_of::<nsBindingManager_cycleCollection>() + , 8usize , concat ! ( + "Alignment of " , stringify ! ( + nsBindingManager_cycleCollection ) )); + } + impl Clone for nsBindingManager_cycleCollection { + fn clone(&self) -> Self { *self } + } + pub type nsBindingManager_WrapperHashtable = u8; + extern "C" { + #[link_name = "_ZN16nsBindingManager21_cycleCollectorGlobalE"] + pub static mut nsBindingManager__cycleCollectorGlobal: + root::nsBindingManager_cycleCollection; + } + #[test] + fn bindgen_test_layout_nsBindingManager() { + assert_eq!(::std::mem::size_of::<nsBindingManager>() , 88usize , + concat ! ( "Size of: " , stringify ! ( nsBindingManager ) + )); + assert_eq! (::std::mem::align_of::<nsBindingManager>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( nsBindingManager ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mRefCnt as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mRefCnt ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . _mOwningThread + as * const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( _mOwningThread ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mBoundContentSet as * const _ as usize } , 24usize , + concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mBoundContentSet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mWrapperTable + as * const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mWrapperTable ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mDocumentTable + as * const _ as usize } , 40usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mDocumentTable ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mLoadingDocTable as * const _ as usize } , 48usize , + concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mLoadingDocTable ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mAttachedStack + as * const _ as usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mAttachedStack ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mProcessingAttachedStack as * const _ as usize } , 64usize + , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mProcessingAttachedStack ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mDestroyed as + * const _ as usize } , 65usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mDestroyed ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mAttachedStackSizeOnOutermost as * const _ as usize } , + 68usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mAttachedStackSizeOnOutermost ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mProcessAttachedQueueEvent as * const _ as usize } , + 72usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mProcessAttachedQueueEvent ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mDocument as * + const _ as usize } , 80usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mDocument ) )); + } + #[repr(C)] #[derive(Debug)] pub struct nsCSSCounterStyleRule { pub _base: root::mozilla::css::Rule, @@ -25670,7 +26054,6 @@ pub mod root { * is supported by all content objects. */ #[repr(C)] - #[derive(Debug)] pub struct nsIContent { pub _base: root::nsINode, } @@ -25755,10 +26138,75 @@ pub mod root { assert_eq! (::std::mem::align_of::<nsIContent>() , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIContent ) )); } + /** + * An nsStyleContext represents the computed style data for an element. + * The computed style data are stored in a set of structs (see + * nsStyleStruct.h) that are cached either on the style context or in + * the rule tree (see nsRuleNode.h for a description of this caching and + * how the cached structs are shared). + * + * Since the data in |nsIStyleRule|s and |nsRuleNode|s are immutable + * (with a few exceptions, like system color changes), the data in an + * nsStyleContext are also immutable (with the additional exception of + * GetUniqueStyleData). When style data change, + * ElementRestyler::Restyle creates a new style context. + * + * Style contexts are reference counted. References are generally held + * by: + * 1. the |nsIFrame|s that are using the style context and + * 2. any *child* style contexts (this might be the reverse of + * expectation, but it makes sense in this case) + */ #[repr(C)] - #[derive(Debug, Copy, Clone)] + #[derive(Debug)] pub struct nsStyleContext { - _unused: [u8; 0], + pub mParent: root::RefPtr<root::nsStyleContext>, + pub mStyleIfVisited: root::RefPtr<root::nsStyleContext>, + pub mPseudoTag: root::nsCOMPtr<root::nsIAtom>, + pub mBits: u64, + pub mRefCnt: u32, + pub mFrameRefCnt: u32, + } + extern "C" { + #[link_name = "_ZN14nsStyleContext16sDependencyTableE"] + pub static mut nsStyleContext_sDependencyTable: [u32; 0usize]; + } + #[test] + fn bindgen_test_layout_nsStyleContext() { + assert_eq!(::std::mem::size_of::<nsStyleContext>() , 40usize , concat + ! ( "Size of: " , stringify ! ( nsStyleContext ) )); + assert_eq! (::std::mem::align_of::<nsStyleContext>() , 8usize , concat + ! ( "Alignment of " , stringify ! ( nsStyleContext ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mParent as * + const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mParent ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mStyleIfVisited + as * const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mStyleIfVisited ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mPseudoTag as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mPseudoTag ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mBits as * const + _ as usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mBits ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mRefCnt as * + const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mRefCnt ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mFrameRefCnt as + * const _ as usize } , 36usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mFrameRefCnt ) )); } #[repr(C)] pub struct nsPresContext { @@ -28973,7 +29421,6 @@ pub mod root { } pub const kNameSpaceID_None: i32 = 0; #[repr(C)] - #[derive(Debug)] pub struct nsNodeInfoManager { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub _mOwningThread: root::nsAutoOwningThread, @@ -29399,7 +29846,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct nsDOMAttributeMap { pub _base: root::nsIDOMMozNamedAttrMap, pub _base_1: root::nsWrapperCache, @@ -29673,7 +30119,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct nsXBLBinding { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub _mOwningThread: root::nsAutoOwningThread, @@ -30798,7 +31243,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct CapturingContentInfo { pub mAllowed: bool, pub mPointerLock: bool, @@ -31152,6 +31596,58 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] + pub struct nsIInterfaceInfo { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsIXPConnectJSObjectHolder { + pub _base: root::nsISupports, + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsIXPConnectJSObjectHolder_COMTypeInfo { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_nsIXPConnectJSObjectHolder() { + assert_eq!(::std::mem::size_of::<nsIXPConnectJSObjectHolder>() , + 8usize , concat ! ( + "Size of: " , stringify ! ( nsIXPConnectJSObjectHolder ) + )); + assert_eq! (::std::mem::align_of::<nsIXPConnectJSObjectHolder>() , + 8usize , concat ! ( + "Alignment of " , stringify ! ( nsIXPConnectJSObjectHolder + ) )); + } + impl Clone for nsIXPConnectJSObjectHolder { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsIXPConnectWrappedJS { + pub _base: root::nsIXPConnectJSObjectHolder, + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsIXPConnectWrappedJS_COMTypeInfo { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_nsIXPConnectWrappedJS() { + assert_eq!(::std::mem::size_of::<nsIXPConnectWrappedJS>() , 8usize , + concat ! ( + "Size of: " , stringify ! ( nsIXPConnectWrappedJS ) )); + assert_eq! (::std::mem::align_of::<nsIXPConnectWrappedJS>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( nsIXPConnectWrappedJS ) + )); + } + impl Clone for nsIXPConnectWrappedJS { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] pub struct nsISimpleEnumerator { _unused: [u8; 0], } @@ -37920,6 +38416,13 @@ pub mod root { pub type RawGeckoGfxMatrix4x4 = [root::mozilla::gfx::Float; 16usize]; pub type RawGeckoStyleChildrenIterator = root::mozilla::dom::StyleChildrenIterator; + pub type ServoComputedValuesBorrowed = *const root::ServoComputedValues; + pub type RawServoDeclarationBlockBorrowed = + *const root::RawServoDeclarationBlock; + pub type ServoStyleContextBorrowed = + *const root::mozilla::ServoStyleContext; + pub type ServoStyleContextBorrowedOrNull = + *const root::mozilla::ServoStyleContext; pub type RawServoAnimationValueMapBorrowedMut = *mut root::RawServoAnimationValueMap; pub type RawGeckoNodeBorrowed = *const root::RawGeckoNode; @@ -38234,6 +38737,11 @@ pub mod root { pub struct nsIConsoleReportCollector { _unused: [u8; 0], } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct CSSRuleListImpl { + _unused: [u8; 0], + } /** * An nsMediaQueryResultCacheKey records what feature/value combinations * a set of media query results are valid for. This allows the caller @@ -38474,6 +38982,11 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] + pub struct nsXBLDocumentInfo { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] pub struct ElementRuleProcessorData { _unused: [u8; 0], } @@ -38585,7 +39098,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct nsIAttribute { pub _base: root::nsINode, pub mAttrMap: root::RefPtr<root::nsDOMAttributeMap>, @@ -38608,6 +39120,35 @@ pub mod root { "::" , stringify ! ( mAttrMap ) )); } /** + * There are two advantages to inheriting from nsStubMutationObserver + * rather than directly from nsIMutationObserver: + * 1. smaller compiled code size (since there's no need for the code + * for the empty virtual function implementations for every + * nsIMutationObserver implementation) + * 2. the performance of document's loop over observers benefits from + * the fact that more of the functions called are the same (which + * can reduce instruction cache misses and perhaps improve branch + * prediction) + */ + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsStubMutationObserver { + pub _base: root::nsIMutationObserver, + } + #[test] + fn bindgen_test_layout_nsStubMutationObserver() { + assert_eq!(::std::mem::size_of::<nsStubMutationObserver>() , 8usize , + concat ! ( + "Size of: " , stringify ! ( nsStubMutationObserver ) )); + assert_eq! (::std::mem::align_of::<nsStubMutationObserver>() , 8usize + , concat ! ( + "Alignment of " , stringify ! ( nsStubMutationObserver ) + )); + } + impl Clone for nsStubMutationObserver { + fn clone(&self) -> Self { *self } + } + /** * Structure used as a key for caching Attrs in nsDOMAttributeMap's mAttributeCache. */ #[repr(C)] @@ -38828,10 +39369,54 @@ pub mod root { impl Clone for LookAndFeelInt { fn clone(&self) -> Self { *self } } + /** + * An object implementing |nsIStyleRule| (henceforth, a rule) represents + * immutable stylistic information that either applies or does not apply + * to a given element. It belongs to an object or group of objects that + * implement |nsIStyleSheet| and |nsIStyleRuleProcessor| (henceforth, a + * sheet). + * + * A rule becomes relevant to the computation of style data when + * |nsIStyleRuleProcessor::RulesMatching| creates a rule node that + * points to the rule. (A rule node, |nsRuleNode|, is a node in the + * rule tree, which is a lexicographic tree indexed by rules. The path + * from the root of the rule tree to the |nsRuleNode| for a given + * |nsStyleContext| contains exactly the rules that match the element + * that the style context is for, in priority (weight, origin, + * specificity) order.) + * + * The computation of style data uses the rule tree, which calls + * |nsIStyleRule::MapRuleInfoInto| below. + * + * It is worth emphasizing that the data represented by a rule + * implementation are immutable. When the data need to be changed, a + * new rule object must be created. Failing to do this will lead to + * bugs in the handling of dynamic style changes, since the rule tree + * caches the results of |MapRuleInfoInto|. + * + * |nsIStyleRule| objects are owned by |nsRuleNode| objects (in addition + * to typically being owned by their sheet), which are in turn garbage + * collected (with the garbage collection roots being style contexts). + */ #[repr(C)] - #[derive(Debug, Copy, Clone)] + #[derive(Debug, Copy)] pub struct nsIStyleRule { - _unused: [u8; 0], + pub _base: root::nsISupports, + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsIStyleRule_COMTypeInfo { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_nsIStyleRule() { + assert_eq!(::std::mem::size_of::<nsIStyleRule>() , 8usize , concat ! ( + "Size of: " , stringify ! ( nsIStyleRule ) )); + assert_eq! (::std::mem::align_of::<nsIStyleRule>() , 8usize , concat ! + ( "Alignment of " , stringify ! ( nsIStyleRule ) )); + } + impl Clone for nsIStyleRule { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] @@ -39138,6 +39723,27 @@ pub mod root { pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_placeholder: u32 = 8; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozColorSwatch: u32 = 12; #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct ElementDependentRuleProcessorData { + _unused: [u8; 0], + } + pub type nsBindingList = root::nsTArray<root::RefPtr<root::nsXBLBinding>>; + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsRuleData { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsCSSFontFeatureValuesRule { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsCSSPageRule { + _unused: [u8; 0], + } + #[repr(C)] #[derive(Debug, Copy)] pub struct nsIDOMCSSCounterStyleRule { pub _base: root::nsISupports, @@ -39485,7 +40091,7 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_189816_instantiation_33() { + fn __bindgen_test_layout__bindgen_ty_id_195925_instantiation_33() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -39494,7 +40100,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_189852_instantiation_34() { + fn __bindgen_test_layout__bindgen_ty_id_195961_instantiation_34() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -40479,7 +41085,20 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_123() { + fn __bindgen_test_layout_nsTArray_instantiation_123() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + } + #[test] + fn __bindgen_test_layout_nsCOMPtr_instantiation_124() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIObserver>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40490,7 +41109,7 @@ pub mod root { root::nsCOMPtr<root::nsIObserver> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_124() { + fn __bindgen_test_layout_nsTArray_instantiation_125() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr<root::nsIObserver>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40501,7 +41120,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr<root::nsIObserver>> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_125() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_126() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIObserver>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40512,7 +41131,7 @@ pub mod root { root::nsCOMPtr<root::nsIObserver> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_126() { + fn __bindgen_test_layout_already_AddRefed_instantiation_127() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40523,7 +41142,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_127() { + fn __bindgen_test_layout_already_AddRefed_instantiation_128() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40534,7 +41153,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_128() { + fn __bindgen_test_layout_RefPtr_instantiation_129() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40545,7 +41164,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_129() { + fn __bindgen_test_layout_nsTArray_instantiation_130() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40556,7 +41175,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_130() { + fn __bindgen_test_layout_already_AddRefed_instantiation_131() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40567,7 +41186,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_131() { + fn __bindgen_test_layout_MutableHandle_instantiation_132() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40578,7 +41197,7 @@ pub mod root { root::JS::MutableHandle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_132() { + fn __bindgen_test_layout_already_AddRefed_instantiation_133() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40589,7 +41208,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_133() { + fn __bindgen_test_layout_already_AddRefed_instantiation_134() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40600,7 +41219,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_134() { + fn __bindgen_test_layout_already_AddRefed_instantiation_135() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40611,7 +41230,7 @@ pub mod root { root::already_AddRefed<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_135() { + fn __bindgen_test_layout_RefPtr_instantiation_136() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40622,7 +41241,20 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_136() { + fn __bindgen_test_layout_nsTArray_instantiation_137() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + } + #[test] + fn __bindgen_test_layout_Handle_instantiation_138() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40633,7 +41265,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_137() { + fn __bindgen_test_layout_already_AddRefed_instantiation_139() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40644,7 +41276,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_138() { + fn __bindgen_test_layout_already_AddRefed_instantiation_140() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40655,7 +41287,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_139() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_141() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::mozilla::dom::Link>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40666,7 +41298,7 @@ pub mod root { root::nsCOMPtr<root::mozilla::dom::Link> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_140() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_142() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIWeakReference>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40677,7 +41309,7 @@ pub mod root { root::nsCOMPtr<root::nsIWeakReference> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_141() { + fn __bindgen_test_layout_RefPtr_instantiation_143() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40688,7 +41320,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_142() { + fn __bindgen_test_layout_nsTArray_instantiation_144() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40701,7 +41333,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_143() { + fn __bindgen_test_layout_nsTArray_instantiation_145() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40712,7 +41344,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_144() { + fn __bindgen_test_layout_Handle_instantiation_146() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40723,7 +41355,130 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_145() { + fn __bindgen_test_layout_already_AddRefed_instantiation_147() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_148() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_149() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_150() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_151() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_152() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_153() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_154() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_155() { + assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_156() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_157() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::RawServoAnimationValue>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::RawServoAnimationValue> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::RawServoAnimationValue>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::RawServoAnimationValue> ) )); + } + #[test] + fn __bindgen_test_layout_DefaultDelete_instantiation_158() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40734,7 +41489,42 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_146() { + fn __bindgen_test_layout_nsTArray_instantiation_159() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_160() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_DefaultDelete_instantiation_161() { + assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , + 1usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::mozilla::DefaultDelete ) )); + assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>() , + 1usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::mozilla::DefaultDelete ) )); + } + #[test] + fn __bindgen_test_layout_UniquePtr_instantiation_162() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsISMILAttr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40745,7 +41535,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsISMILAttr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_147() { + fn __bindgen_test_layout_already_AddRefed_instantiation_163() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40756,7 +41546,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_148() { + fn __bindgen_test_layout_nsTArray_instantiation_164() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40767,7 +41557,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_149() { + fn __bindgen_test_layout_Handle_instantiation_165() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40778,7 +41568,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_150() { + fn __bindgen_test_layout_Handle_instantiation_166() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40789,7 +41579,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_151() { + fn __bindgen_test_layout_Handle_instantiation_167() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40800,7 +41590,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_152() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_168() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40813,7 +41603,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_153() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_169() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40824,7 +41614,40 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_154() { + fn __bindgen_test_layout_nsTArray_instantiation_170() { + assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_171() { + assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>() + , 16usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsRefPtrHashKey<root::nsIContent> ) )); + assert_eq!(::std::mem::align_of::<root::nsRefPtrHashKey<root::nsIContent>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsRefPtrHashKey<root::nsIContent> ) )); + } + #[test] + fn __bindgen_test_layout_nsTHashtable_instantiation_172() { + assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! + ( + "Size of template specialization: " , stringify ! ( + [u64; 6usize] ) )); + assert_eq!(::std::mem::align_of::<[u64; 6usize]>() , 8usize , concat ! + ( + "Alignment of template specialization: " , stringify ! ( + [u64; 6usize] ) )); + } + #[test] + fn __bindgen_test_layout_Handle_instantiation_173() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40835,7 +41658,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_155() { + fn __bindgen_test_layout_nsTArray_instantiation_174() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40846,7 +41669,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_156() { + fn __bindgen_test_layout_nsTArray_instantiation_175() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40857,7 +41680,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_157() { + fn __bindgen_test_layout_already_AddRefed_instantiation_176() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40868,7 +41691,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_158() { + fn __bindgen_test_layout_already_AddRefed_instantiation_177() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40879,7 +41702,99 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_159() { + fn __bindgen_test_layout_already_AddRefed_instantiation_178() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_nsCOMPtr_instantiation_179() { + assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIStyleRule>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsCOMPtr<root::nsIStyleRule> ) )); + assert_eq!(::std::mem::align_of::<root::nsCOMPtr<root::nsIStyleRule>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsCOMPtr<root::nsIStyleRule> ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_180() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_181() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_182() { + assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_183() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_184() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_nsCOMPtr_instantiation_185() { + assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIStyleRuleProcessor>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsCOMPtr<root::nsIStyleRuleProcessor> ) )); + assert_eq!(::std::mem::align_of::<root::nsCOMPtr<root::nsIStyleRuleProcessor>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsCOMPtr<root::nsIStyleRuleProcessor> ) )); + } + #[test] + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_186() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -40888,7 +41803,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_160() { + fn __bindgen_test_layout_already_AddRefed_instantiation_187() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40899,7 +41814,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_161() { + fn __bindgen_test_layout_nsTArray_instantiation_188() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40910,7 +41825,7 @@ pub mod root { root::nsTArray<root::nsRect> ) )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_162() { + fn __bindgen_test_layout_NotNull_instantiation_189() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40923,7 +41838,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_163() { + fn __bindgen_test_layout_NotNull_instantiation_190() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40936,7 +41851,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_164() { + fn __bindgen_test_layout_already_AddRefed_instantiation_191() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsITimer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40947,7 +41862,7 @@ pub mod root { root::already_AddRefed<root::nsITimer> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_165() { + fn __bindgen_test_layout_DefaultDelete_instantiation_192() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40958,7 +41873,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_166() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_193() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40969,7 +41884,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_167() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_194() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40980,7 +41895,7 @@ pub mod root { root::nsCOMPtr<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_168() { + fn __bindgen_test_layout_nsTArray_instantiation_195() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr<root::nsIAtom>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40991,7 +41906,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr<root::nsIAtom>> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_169() { + fn __bindgen_test_layout_already_AddRefed_instantiation_196() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41002,7 +41917,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_170() { + fn __bindgen_test_layout_already_AddRefed_instantiation_197() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41013,7 +41928,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_171() { + fn __bindgen_test_layout_already_AddRefed_instantiation_198() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41024,7 +41939,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_172() { + fn __bindgen_test_layout_already_AddRefed_instantiation_199() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41035,7 +41950,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_173() { + fn __bindgen_test_layout_already_AddRefed_instantiation_200() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41046,7 +41961,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_174() { + fn __bindgen_test_layout_Handle_instantiation_201() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41057,7 +41972,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_175() { + fn __bindgen_test_layout_Handle_instantiation_202() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41068,7 +41983,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_176() { + fn __bindgen_test_layout_Handle_instantiation_203() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41079,7 +41994,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_177() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_204() { assert_eq!(::std::mem::size_of::<[u64; 31usize]>() , 248usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41090,7 +42005,7 @@ pub mod root { [u64; 31usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_178() { + fn __bindgen_test_layout_already_AddRefed_instantiation_205() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41101,7 +42016,7 @@ pub mod root { root::already_AddRefed<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_179() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_206() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41112,7 +42027,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_180() { + fn __bindgen_test_layout_Handle_instantiation_207() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41123,7 +42038,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_181() { + fn __bindgen_test_layout_nsTArray_instantiation_208() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41134,7 +42049,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_182() { + fn __bindgen_test_layout_Handle_instantiation_209() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41145,7 +42060,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_183() { + fn __bindgen_test_layout_OwningNonNull_instantiation_210() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41156,7 +42071,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_184() { + fn __bindgen_test_layout_OwningNonNull_instantiation_211() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41167,7 +42082,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_185() { + fn __bindgen_test_layout_OwningNonNull_instantiation_212() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41178,7 +42093,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_186() { + fn __bindgen_test_layout_Handle_instantiation_213() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41189,7 +42104,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_187() { + fn __bindgen_test_layout_Handle_instantiation_214() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41200,7 +42115,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_188() { + fn __bindgen_test_layout_Handle_instantiation_215() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41211,7 +42126,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_189() { + fn __bindgen_test_layout_MutableHandle_instantiation_216() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41222,7 +42137,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_190() { + fn __bindgen_test_layout_Handle_instantiation_217() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::jsid>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41233,7 +42148,7 @@ pub mod root { root::JS::Handle<root::jsid> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_191() { + fn __bindgen_test_layout_MutableHandle_instantiation_218() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::PropertyDescriptor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41244,7 +42159,7 @@ pub mod root { root::JS::MutableHandle<root::JS::PropertyDescriptor> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_192() { + fn __bindgen_test_layout_Handle_instantiation_219() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::jsid>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41255,7 +42170,7 @@ pub mod root { root::JS::Handle<root::jsid> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_193() { + fn __bindgen_test_layout_MutableHandle_instantiation_220() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::PropertyDescriptor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41266,7 +42181,7 @@ pub mod root { root::JS::MutableHandle<root::JS::PropertyDescriptor> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_194() { + fn __bindgen_test_layout_Handle_instantiation_221() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41277,7 +42192,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_195() { + fn __bindgen_test_layout_Handle_instantiation_222() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41288,7 +42203,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_196() { + fn __bindgen_test_layout_Handle_instantiation_223() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41299,7 +42214,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_197() { + fn __bindgen_test_layout_MutableHandle_instantiation_224() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41310,7 +42225,7 @@ pub mod root { root::JS::MutableHandle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_198() { + fn __bindgen_test_layout_RefPtr_instantiation_225() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41321,7 +42236,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::XBLChildrenElement> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_199() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_226() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIWeakReference>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41332,7 +42247,7 @@ pub mod root { root::nsCOMPtr<root::nsIWeakReference> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_200() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_227() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<::std::os::raw::c_void>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41343,7 +42258,7 @@ pub mod root { root::nsPtrHashKey<::std::os::raw::c_void> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_201() { + fn __bindgen_test_layout_already_AddRefed_instantiation_228() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41354,7 +42269,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_202() { + fn __bindgen_test_layout_already_AddRefed_instantiation_229() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41365,7 +42280,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_203() { + fn __bindgen_test_layout_NotNull_instantiation_230() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41378,7 +42293,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_204() { + fn __bindgen_test_layout_already_AddRefed_instantiation_231() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41389,7 +42304,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_205() { + fn __bindgen_test_layout_already_AddRefed_instantiation_232() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41399,8 +42314,16 @@ pub mod root { "Alignment of template specialization: " , stringify ! ( root::already_AddRefed<root::nsIAtom> ) )); } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct _bindgen_ty_11 { + pub _address: u8, + } + impl Clone for _bindgen_ty_11 { + fn clone(&self) -> Self { *self } + } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_206() { + fn __bindgen_test_layout_already_AddRefed_instantiation_233() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41411,7 +42334,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_207() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_234() { assert_eq!(::std::mem::size_of::<[u64; 31usize]>() , 248usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41422,7 +42345,7 @@ pub mod root { [u64; 31usize] ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_208() { + fn __bindgen_test_layout_MutableHandle_instantiation_235() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41433,7 +42356,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_209() { + fn __bindgen_test_layout_MutableHandle_instantiation_236() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41444,7 +42367,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_210() { + fn __bindgen_test_layout_already_AddRefed_instantiation_237() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41455,7 +42378,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_211() { + fn __bindgen_test_layout_DefaultDelete_instantiation_238() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41466,7 +42389,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_212() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_239() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41477,7 +42400,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_213() { + fn __bindgen_test_layout_Rooted_instantiation_240() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41488,7 +42411,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_214() { + fn __bindgen_test_layout_Rooted_instantiation_241() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41499,7 +42422,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_215() { + fn __bindgen_test_layout_already_AddRefed_instantiation_242() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsISupports>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41510,7 +42433,7 @@ pub mod root { root::already_AddRefed<root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_216() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_243() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsISupports>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41521,7 +42444,7 @@ pub mod root { root::nsCOMPtr<root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_217() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_244() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41532,7 +42455,7 @@ pub mod root { root::nsCOMPtr<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_218() { + fn __bindgen_test_layout_NotNull_instantiation_245() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41545,7 +42468,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_219() { + fn __bindgen_test_layout_nsTArray_instantiation_246() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41556,7 +42479,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_220() { + fn __bindgen_test_layout_Handle_instantiation_247() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41567,7 +42490,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_221() { + fn __bindgen_test_layout_MutableHandle_instantiation_248() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41578,7 +42501,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_222() { + fn __bindgen_test_layout_Handle_instantiation_249() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41589,7 +42512,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_223() { + fn __bindgen_test_layout_MutableHandle_instantiation_250() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41600,7 +42523,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_224() { + fn __bindgen_test_layout_nsTArray_instantiation_251() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41611,7 +42534,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_225() { + fn __bindgen_test_layout_Handle_instantiation_252() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41622,7 +42545,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_226() { + fn __bindgen_test_layout_RefPtr_instantiation_253() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41633,7 +42556,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_227() { + fn __bindgen_test_layout_RefPtr_instantiation_254() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41644,7 +42567,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_228() { + fn __bindgen_test_layout_RefPtr_instantiation_255() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41655,7 +42578,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_229() { + fn __bindgen_test_layout_nsTArray_instantiation_256() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::css::SheetLoadData>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41668,7 +42591,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_230() { + fn __bindgen_test_layout_RefPtr_instantiation_257() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41679,7 +42602,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_231() { + fn __bindgen_test_layout_already_AddRefed_instantiation_258() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41690,7 +42613,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_232() { + fn __bindgen_test_layout_already_AddRefed_instantiation_259() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41701,7 +42624,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_233() { + fn __bindgen_test_layout_Handle_instantiation_260() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41712,7 +42635,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_234() { + fn __bindgen_test_layout_nsTArray_instantiation_261() { assert_eq!(::std::mem::size_of::<root::nsTArray<f64>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41723,7 +42646,7 @@ pub mod root { root::nsTArray<f64> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_235() { + fn __bindgen_test_layout_RefPtr_instantiation_262() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41736,7 +42659,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_236() { + fn __bindgen_test_layout_nsTArray_instantiation_263() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41749,7 +42672,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_237() { + fn __bindgen_test_layout_RefPtr_instantiation_264() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41762,7 +42685,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_238() { + fn __bindgen_test_layout_UniquePtr_instantiation_265() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41773,7 +42696,7 @@ pub mod root { root::mozilla::UniquePtr<root::ProfilerBacktrace> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_239() { + fn __bindgen_test_layout_nsTArray_instantiation_266() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41784,7 +42707,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_240() { + fn __bindgen_test_layout_Handle_instantiation_267() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41795,7 +42718,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_241() { + fn __bindgen_test_layout_MutableHandle_instantiation_268() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41806,7 +42729,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_242() { + fn __bindgen_test_layout_Handle_instantiation_269() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41817,7 +42740,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_243() { + fn __bindgen_test_layout_MutableHandle_instantiation_270() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41828,7 +42751,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_244() { + fn __bindgen_test_layout_already_AddRefed_instantiation_271() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41839,7 +42762,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_245() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_272() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41850,7 +42773,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_246() { + fn __bindgen_test_layout_OwningNonNull_instantiation_273() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41863,7 +42786,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_247() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_274() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41874,7 +42797,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_248() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_275() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41885,7 +42808,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_249() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_276() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41896,7 +42819,7 @@ pub mod root { root::nsCOMPtr<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_250() { + fn __bindgen_test_layout_DefaultDelete_instantiation_277() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41907,7 +42830,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_251() { + fn __bindgen_test_layout_already_AddRefed_instantiation_278() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41918,7 +42841,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_252() { + fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_279() { assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41929,7 +42852,7 @@ pub mod root { root::nsMainThreadPtrHolder<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_253() { + fn __bindgen_test_layout_already_AddRefed_instantiation_280() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41940,7 +42863,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_254() { + fn __bindgen_test_layout_already_AddRefed_instantiation_281() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41951,7 +42874,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_255() { + fn __bindgen_test_layout_already_AddRefed_instantiation_282() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41962,7 +42885,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_256() { + fn __bindgen_test_layout_already_AddRefed_instantiation_283() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41973,7 +42896,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_257() { + fn __bindgen_test_layout_already_AddRefed_instantiation_284() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41984,7 +42907,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_258() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_285() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIDocument>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41995,7 +42918,7 @@ pub mod root { root::nsPtrHashKey<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_259() { + fn __bindgen_test_layout_already_AddRefed_instantiation_286() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42006,7 +42929,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_260() { + fn __bindgen_test_layout_DefaultDelete_instantiation_287() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42017,7 +42940,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_261() { + fn __bindgen_test_layout_UniquePtr_instantiation_288() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42028,7 +42951,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_262() { + fn __bindgen_test_layout_DefaultDelete_instantiation_289() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42039,7 +42962,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_263() { + fn __bindgen_test_layout_UniquePtr_instantiation_290() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42050,7 +42973,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_264() { + fn __bindgen_test_layout_already_AddRefed_instantiation_291() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42061,7 +42984,7 @@ pub mod root { root::already_AddRefed<root::nsStringBuffer> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_265() { + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_292() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -42070,7 +42993,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_266() { + fn __bindgen_test_layout_nsTArray_instantiation_293() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42081,7 +43004,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_267() { + fn __bindgen_test_layout_nsTArray_instantiation_294() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42092,7 +43015,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_268() { + fn __bindgen_test_layout_already_AddRefed_instantiation_295() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42103,7 +43026,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_269() { + fn __bindgen_test_layout_Maybe_instantiation_296() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42114,7 +43037,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_270() { + fn __bindgen_test_layout_Maybe_instantiation_297() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42125,7 +43048,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_271() { + fn __bindgen_test_layout_already_AddRefed_instantiation_298() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42136,7 +43059,7 @@ pub mod root { root::already_AddRefed<root::nsStyleImageRequest> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_272() { + fn __bindgen_test_layout_already_AddRefed_instantiation_299() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42147,7 +43070,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_273() { + fn __bindgen_test_layout_DefaultDelete_instantiation_300() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42158,7 +43081,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_274() { + fn __bindgen_test_layout_UniquePtr_instantiation_301() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42169,7 +43092,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_275() { + fn __bindgen_test_layout_DefaultDelete_instantiation_302() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42180,7 +43103,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_276() { + fn __bindgen_test_layout_UniquePtr_instantiation_303() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42191,7 +43114,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_277() { + fn __bindgen_test_layout_already_AddRefed_instantiation_304() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42202,7 +43125,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_278() { + fn __bindgen_test_layout_Maybe_instantiation_305() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42213,7 +43136,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_279() { + fn __bindgen_test_layout_DefaultDelete_instantiation_306() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42224,7 +43147,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_280() { + fn __bindgen_test_layout_DefaultDelete_instantiation_307() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42235,7 +43158,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_pair_instantiation_281() { + fn __bindgen_test_layout_pair_instantiation_308() { assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42246,7 +43169,7 @@ pub mod root { root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_282() { + fn __bindgen_test_layout_nsTArray_instantiation_309() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>>() , 8usize , concat ! ( @@ -42261,7 +43184,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_283() { + fn __bindgen_test_layout_nsTArray_instantiation_310() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42272,7 +43195,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_284() { + fn __bindgen_test_layout_nsTArray_instantiation_311() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42283,7 +43206,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_285() { + fn __bindgen_test_layout_nsTArray_instantiation_312() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42294,7 +43217,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_286() { + fn __bindgen_test_layout_RefPtr_instantiation_313() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::RawServoAnimationValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42305,7 +43228,7 @@ pub mod root { root::RefPtr<root::RawServoAnimationValue> ) )); } #[test] - fn __bindgen_test_layout_nsStyleAutoArray_instantiation_287() { + fn __bindgen_test_layout_nsStyleAutoArray_instantiation_314() { assert_eq!(::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>() , 64usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42316,7 +43239,7 @@ pub mod root { root::nsStyleAutoArray<root::mozilla::StyleAnimation> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_288() { + fn __bindgen_test_layout_DefaultDelete_instantiation_315() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42327,7 +43250,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_289() { + fn __bindgen_test_layout_UniquePtr_instantiation_316() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42338,7 +43261,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_290() { + fn __bindgen_test_layout_DefaultDelete_instantiation_317() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42349,7 +43272,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_291() { + fn __bindgen_test_layout_UniquePtr_instantiation_318() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42360,7 +43283,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_292() { + fn __bindgen_test_layout_RefPtr_instantiation_319() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42371,7 +43294,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_293() { + fn __bindgen_test_layout_RefPtr_instantiation_320() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42382,7 +43305,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_294() { + fn __bindgen_test_layout_NonNull_instantiation_321() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42395,7 +43318,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_295() { + fn __bindgen_test_layout_NonNull_instantiation_322() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::CSSPseudoElement>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42408,7 +43331,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_296() { + fn __bindgen_test_layout_Handle_instantiation_323() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42419,7 +43342,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_297() { + fn __bindgen_test_layout_MutableHandle_instantiation_324() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42430,7 +43353,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_298() { + fn __bindgen_test_layout_Maybe_instantiation_325() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42441,7 +43364,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_299() { + fn __bindgen_test_layout_Maybe_instantiation_326() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42452,7 +43375,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_BaseTimeDuration_instantiation_300() { + fn __bindgen_test_layout_BaseTimeDuration_instantiation_327() { assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42463,7 +43386,7 @@ pub mod root { root::mozilla::BaseTimeDuration ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_301() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_328() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42474,7 +43397,7 @@ pub mod root { root::nsCOMPtr<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_302() { + fn __bindgen_test_layout_already_AddRefed_instantiation_329() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42485,7 +43408,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_303() { + fn __bindgen_test_layout_already_AddRefed_instantiation_330() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42496,7 +43419,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_304() { + fn __bindgen_test_layout_nsTArray_instantiation_331() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42507,7 +43430,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_305() { + fn __bindgen_test_layout_nsTArray_instantiation_332() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42518,7 +43441,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_306() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_333() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42529,7 +43452,7 @@ pub mod root { root::nsCOMPtr<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_307() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_334() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42542,7 +43465,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_308() { + fn __bindgen_test_layout_already_AddRefed_instantiation_335() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42553,7 +43476,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_309() { + fn __bindgen_test_layout_nsTArray_instantiation_336() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42566,7 +43489,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_310() { + fn __bindgen_test_layout_Handle_instantiation_337() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42577,7 +43500,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_311() { + fn __bindgen_test_layout_Handle_instantiation_338() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42588,7 +43511,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_312() { + fn __bindgen_test_layout_RefPtr_instantiation_339() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42599,7 +43522,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::DOMRect> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_313() { + fn __bindgen_test_layout_Handle_instantiation_340() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42610,7 +43533,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_314() { + fn __bindgen_test_layout_MutableHandle_instantiation_341() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42621,7 +43544,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_315() { + fn __bindgen_test_layout_Sequence_instantiation_342() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -42630,7 +43553,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_316() { + fn __bindgen_test_layout_Handle_instantiation_343() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42641,7 +43564,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_317() { + fn __bindgen_test_layout_Sequence_instantiation_344() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -42650,7 +43573,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_318() { + fn __bindgen_test_layout_Sequence_instantiation_345() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -42659,7 +43582,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_319() { + fn __bindgen_test_layout_Handle_instantiation_346() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42670,7 +43593,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_320() { + fn __bindgen_test_layout_Handle_instantiation_347() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42681,7 +43604,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_321() { + fn __bindgen_test_layout_MutableHandle_instantiation_348() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42692,7 +43615,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_322() { + fn __bindgen_test_layout_Handle_instantiation_349() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42703,7 +43626,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_323() { + fn __bindgen_test_layout_MutableHandle_instantiation_350() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42714,7 +43637,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_324() { + fn __bindgen_test_layout_Handle_instantiation_351() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42725,7 +43648,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_325() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_352() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42736,7 +43659,7 @@ pub mod root { root::nsRefPtrHashKey<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsClassHashtable_instantiation_326() { + fn __bindgen_test_layout_nsClassHashtable_instantiation_353() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42747,7 +43670,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_327() { + fn __bindgen_test_layout_Handle_instantiation_354() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42758,7 +43681,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_328() { + fn __bindgen_test_layout_nsTArray_instantiation_355() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42769,7 +43692,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_329() { + fn __bindgen_test_layout_nsTArray_instantiation_356() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42780,7 +43703,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_330() { + fn __bindgen_test_layout_nsTArray_instantiation_357() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42791,7 +43714,51 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_331() { + fn __bindgen_test_layout_RefPtr_instantiation_358() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::nsXBLBinding>>() , + 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::nsXBLBinding> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::nsXBLBinding>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::nsXBLBinding> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_359() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsXBLBinding>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::nsXBLBinding>> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsXBLBinding>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::nsXBLBinding>> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_360() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::gfxFontFeature>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::gfxFontFeature> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::gfxFontFeature>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::gfxFontFeature> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_361() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::gfx::FontVariation>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::mozilla::gfx::FontVariation> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::gfx::FontVariation>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::mozilla::gfx::FontVariation> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_362() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42802,7 +43769,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_332() { + fn __bindgen_test_layout_Handle_instantiation_363() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42813,7 +43780,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_333() { + fn __bindgen_test_layout_nsTArray_instantiation_364() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42824,7 +43791,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_nsAutoPtr_instantiation_334() { + fn __bindgen_test_layout_nsAutoPtr_instantiation_365() { assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko/generated/structs_release.rs b/components/style/gecko/generated/structs_release.rs index bc2e1a41e71..0c9ce809437 100644 --- a/components/style/gecko/generated/structs_release.rs +++ b/components/style/gecko/generated/structs_release.rs @@ -16,6 +16,7 @@ pub type ServoRuleNode = Option<::rule_tree::StrongRuleNode>; pub type ServoVisitedStyle = Option<::stylearc::Arc<::properties::ComputedValues>>; pub type ServoComputedValueFlags = ::properties::computed_value_flags::ComputedValueFlags; pub type ServoRawOffsetArc<T> = ::stylearc::RawOffsetArc<T>; +pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<ServoStyleContext>; #[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)] pub mod root { @@ -3982,7 +3983,6 @@ pub mod root { ) , "::" , stringify ! ( mEmpty ) )); } #[repr(C)] - #[derive(Debug)] pub struct Element { pub _base: root::mozilla::dom::FragmentOrElement, pub mState: root::mozilla::EventStates, @@ -4128,7 +4128,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct NodeInfo { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub mDocument: *mut root::nsIDocument, @@ -5186,7 +5185,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct Attr { pub _base: root::nsIAttribute, pub _base_1: root::nsIDOMAttr, @@ -5643,7 +5641,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct FragmentOrElement { pub _base: root::nsIContent, pub mRefCnt: root::nsCycleCollectingAutoRefCnt, @@ -5682,7 +5679,6 @@ pub mod root { * accessed through the DOM. */ #[repr(C)] - #[derive(Debug)] pub struct FragmentOrElement_nsDOMSlots { pub _base: root::nsINode_nsSlots, /** @@ -6066,7 +6062,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct DOMIntersectionObserverEntry { pub _base: root::nsISupports, pub _base_1: root::nsWrapperCache, @@ -6215,7 +6210,6 @@ pub mod root { ! ( mValue ) )); } #[repr(C)] - #[derive(Debug)] pub struct IntersectionObserverInit { pub _base: root::mozilla::dom::DictionaryBase, pub mRoot: root::RefPtr<root::mozilla::dom::Element>, @@ -6270,7 +6264,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct DestinationInsertionPointList { pub _base: root::nsINodeList, pub mRefCnt: root::nsCycleCollectingAutoRefCnt, @@ -7413,6 +7406,9 @@ pub mod root { } #[repr(i32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum LazyComputeBehavior { Allow = 0, Assert = 1, } + #[repr(i32)] + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum TraversalRootBehavior { Normal = 0, UnstyledChildrenOnly = 1, @@ -7880,254 +7876,6 @@ pub mod root { "Alignment of field: " , stringify ! ( GeckoEffects ) , "::" , stringify ! ( gecko ) )); } - /** - * We want C++ to be abe to read the style struct fields of ComputedValues - * so we define this type on the C++ side and use the bindgenned version - * on the Rust side. - * - * C++ just sees pointers and opaque types here, so bindgen will attempt to generate a Copy - * impl. This will fail because the bindgenned version contains owned types. Opt out. - * - * <div rustbindgen nocopy></div> - */ - #[repr(C)] - #[derive(Debug)] - pub struct ServoComputedValues2 { - pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>, - pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>, - pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>, - pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>, - pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>, - pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>, - pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>, - pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>, - pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>, - pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>, - pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>, - pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>, - pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>, - pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>, - pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>, - pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>, - pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>, - pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>, - pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>, - pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>, - pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>, - pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>, - pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>, - pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap, - pub writing_mode: ::gecko_bindings::structs::ServoWritingMode, - pub font_computation_data: ::gecko_bindings::structs::ServoFontComputationData, - /// The rule node representing the ordered list of rules matched for this - /// node. Can be None for default values and text nodes. This is - /// essentially an optimization to avoid referencing the root rule node. - pub rules: ::gecko_bindings::structs::ServoRuleNode, - /// The element's computed values if visited, only computed if there's a - /// relevant link for this element. A element's "relevant link" is the - /// element being matched if it is a link or the nearest ancestor link. - pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle, - pub flags: ::gecko_bindings::structs::ServoComputedValueFlags, - } - #[test] - fn bindgen_test_layout_ServoComputedValues2() { - assert_eq!(::std::mem::size_of::<ServoComputedValues2>() , - 232usize , concat ! ( - "Size of: " , stringify ! ( ServoComputedValues2 ) )); - assert_eq! (::std::mem::align_of::<ServoComputedValues2>() , - 8usize , concat ! ( - "Alignment of " , stringify ! ( ServoComputedValues2 ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Font - as * const _ as usize } , 0usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Font ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Color - as * const _ as usize } , 8usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Color ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . List - as * const _ as usize } , 16usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( List ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Text - as * const _ as usize } , 24usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Text ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Visibility as * const _ as usize } , 32usize , concat - ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - Visibility ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - UserInterface as * const _ as usize } , 40usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - UserInterface ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - TableBorder as * const _ as usize } , 48usize , concat - ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - TableBorder ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . SVG as - * const _ as usize } , 56usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( SVG ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Background as * const _ as usize } , 64usize , concat - ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - Background ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Position as * const _ as usize } , 72usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Position - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - TextReset as * const _ as usize } , 80usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - TextReset ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Display as * const _ as usize } , 88usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Display - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Content as * const _ as usize } , 96usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Content - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - UIReset as * const _ as usize } , 104usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( UIReset - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Table - as * const _ as usize } , 112usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Table ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Margin - as * const _ as usize } , 120usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Margin ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Padding as * const _ as usize } , 128usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Padding - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Border - as * const _ as usize } , 136usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Border ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Outline as * const _ as usize } , 144usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Outline - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . XUL as - * const _ as usize } , 152usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( XUL ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - SVGReset as * const _ as usize } , 160usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( SVGReset - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . Column - as * const _ as usize } , 168usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Column ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - Effects as * const _ as usize } , 176usize , concat ! - ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( Effects - ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - custom_properties as * const _ as usize } , 184usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - custom_properties ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - writing_mode as * const _ as usize } , 192usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - writing_mode ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - font_computation_data as * const _ as usize } , - 196usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - font_computation_data ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . rules - as * const _ as usize } , 208usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( rules ) - )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . - visited_style as * const _ as usize } , 216usize , - concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( - visited_style ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const ServoComputedValues2 ) ) . flags - as * const _ as usize } , 224usize , concat ! ( - "Alignment of field: " , stringify ! ( - ServoComputedValues2 ) , "::" , stringify ! ( flags ) - )); - } #[repr(u8)] /** * Enumeration that represents one of the two supported style system backends. @@ -8440,6 +8188,78 @@ pub mod root { CORS_USE_CREDENTIALS = 2, } #[repr(C)] + pub struct CSSStyleSheet { + pub _base: root::mozilla::StyleSheet, + pub mRuleCollection: root::RefPtr<root::CSSRuleListImpl>, + pub mInRuleProcessorCache: bool, + pub mScopeElement: root::RefPtr<root::mozilla::dom::Element>, + pub mRuleProcessors: *mut u8, + } + pub use self::super::super::root::mozilla::net::ReferrerPolicy as + CSSStyleSheet_ReferrerPolicy; + #[repr(C)] + #[derive(Debug, Copy)] + pub struct CSSStyleSheet_cycleCollection { + pub _base: root::mozilla::StyleSheet_cycleCollection, + } + #[test] + fn bindgen_test_layout_CSSStyleSheet_cycleCollection() { + assert_eq!(::std::mem::size_of::<CSSStyleSheet_cycleCollection>() + , 16usize , concat ! ( + "Size of: " , stringify ! ( + CSSStyleSheet_cycleCollection ) )); + assert_eq! (::std::mem::align_of::<CSSStyleSheet_cycleCollection>() + , 8usize , concat ! ( + "Alignment of " , stringify ! ( + CSSStyleSheet_cycleCollection ) )); + } + impl Clone for CSSStyleSheet_cycleCollection { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct CSSStyleSheet_COMTypeInfo { + pub _address: u8, + } + extern "C" { + #[link_name = + "_ZN7mozilla13CSSStyleSheet21_cycleCollectorGlobalE"] + pub static mut CSSStyleSheet__cycleCollectorGlobal: + root::mozilla::CSSStyleSheet_cycleCollection; + } + #[test] + fn bindgen_test_layout_CSSStyleSheet() { + assert_eq!(::std::mem::size_of::<CSSStyleSheet>() , 168usize , + concat ! ( "Size of: " , stringify ! ( CSSStyleSheet ) + )); + assert_eq! (::std::mem::align_of::<CSSStyleSheet>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( CSSStyleSheet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . + mRuleCollection as * const _ as usize } , 136usize , + concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mRuleCollection ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . + mInRuleProcessorCache as * const _ as usize } , + 144usize , concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mInRuleProcessorCache ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . mScopeElement + as * const _ as usize } , 152usize , concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mScopeElement ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const CSSStyleSheet ) ) . + mRuleProcessors as * const _ as usize } , 160usize , + concat ! ( + "Alignment of field: " , stringify ! ( CSSStyleSheet ) + , "::" , stringify ! ( mRuleProcessors ) )); + } + #[repr(C)] #[derive(Debug)] pub struct ServoStyleSheet { pub _base: root::mozilla::StyleSheet, @@ -8674,10 +8494,135 @@ pub mod root { NotPseudo = 28, MAX = 29, } + /** + * The set of style sheets that apply to a document, backed by a Servo + * Stylist. A ServoStyleSet contains ServoStyleSheets. + */ #[repr(C)] - #[derive(Debug, Copy, Clone)] pub struct ServoStyleSet { - _unused: [u8; 0], + pub mPresContext: *mut root::nsPresContext, + pub mRawSet: root::mozilla::UniquePtr<root::RawServoStyleSet>, + pub mSheets: [u64; 9usize], + pub mAuthorStyleDisabled: bool, + pub mStylistState: root::mozilla::StylistState, + pub mUserFontSetUpdateGeneration: u64, + pub mUserFontCacheUpdateGeneration: u32, + pub mNeedsRestyleAfterEnsureUniqueInner: bool, + pub mNonInheritingStyleContexts: [u64; 5usize], + pub mPostTraversalTasks: root::nsTArray<root::mozilla::PostTraversalTask>, + pub mStyleRuleMap: root::RefPtr<root::mozilla::ServoStyleRuleMap>, + pub mBindingManager: root::RefPtr<root::nsBindingManager>, + } + pub type ServoStyleSet_SnapshotTable = + root::mozilla::ServoElementSnapshotTable; + #[repr(C)] + #[derive(Debug)] + pub struct ServoStyleSet_AutoSetInServoTraversal { + pub mSet: *mut root::mozilla::ServoStyleSet, + } + #[test] + fn bindgen_test_layout_ServoStyleSet_AutoSetInServoTraversal() { + assert_eq!(::std::mem::size_of::<ServoStyleSet_AutoSetInServoTraversal>() + , 8usize , concat ! ( + "Size of: " , stringify ! ( + ServoStyleSet_AutoSetInServoTraversal ) )); + assert_eq! (::std::mem::align_of::<ServoStyleSet_AutoSetInServoTraversal>() + , 8usize , concat ! ( + "Alignment of " , stringify ! ( + ServoStyleSet_AutoSetInServoTraversal ) )); + assert_eq! (unsafe { + & ( + * ( 0 as * const ServoStyleSet_AutoSetInServoTraversal + ) ) . mSet as * const _ as usize } , 0usize , concat ! + ( + "Alignment of field: " , stringify ! ( + ServoStyleSet_AutoSetInServoTraversal ) , "::" , + stringify ! ( mSet ) )); + } + extern "C" { + #[link_name = "_ZN7mozilla13ServoStyleSet17sInServoTraversalE"] + pub static mut ServoStyleSet_sInServoTraversal: + *mut root::mozilla::ServoStyleSet; + } + #[test] + fn bindgen_test_layout_ServoStyleSet() { + assert_eq!(::std::mem::size_of::<ServoStyleSet>() , 176usize , + concat ! ( "Size of: " , stringify ! ( ServoStyleSet ) + )); + assert_eq! (::std::mem::align_of::<ServoStyleSet>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( ServoStyleSet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mPresContext + as * const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mPresContext ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mRawSet as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mRawSet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mSheets as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mSheets ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mAuthorStyleDisabled as * const _ as usize } , 88usize + , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mAuthorStyleDisabled ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mStylistState + as * const _ as usize } , 89usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mStylistState ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mUserFontSetUpdateGeneration as * const _ as usize } , + 96usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mUserFontSetUpdateGeneration ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mUserFontCacheUpdateGeneration as * const _ as usize } + , 104usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mUserFontCacheUpdateGeneration + ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mNeedsRestyleAfterEnsureUniqueInner as * const _ as + usize } , 108usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( + mNeedsRestyleAfterEnsureUniqueInner ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mNonInheritingStyleContexts as * const _ as usize } , + 112usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mNonInheritingStyleContexts ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mPostTraversalTasks as * const _ as usize } , 152usize + , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mPostTraversalTasks ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . mStyleRuleMap + as * const _ as usize } , 160usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mStyleRuleMap ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleSet ) ) . + mBindingManager as * const _ as usize } , 168usize , + concat ! ( + "Alignment of field: " , stringify ! ( ServoStyleSet ) + , "::" , stringify ! ( mBindingManager ) )); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -10636,6 +10581,36 @@ pub mod root { } #[repr(C)] #[derive(Debug)] + pub struct ServoStyleContext { + pub _base: root::nsStyleContext, + pub mPresContext: *mut root::nsPresContext, + pub mSource: root::RefPtr<root::ServoComputedValues>, + } + #[test] + fn bindgen_test_layout_ServoStyleContext() { + assert_eq!(::std::mem::size_of::<ServoStyleContext>() , 56usize , + concat ! ( + "Size of: " , stringify ! ( ServoStyleContext ) )); + assert_eq! (::std::mem::align_of::<ServoStyleContext>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( ServoStyleContext ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleContext ) ) . + mPresContext as * const _ as usize } , 40usize , + concat ! ( + "Alignment of field: " , stringify ! ( + ServoStyleContext ) , "::" , stringify ! ( + mPresContext ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoStyleContext ) ) . mSource + as * const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( + ServoStyleContext ) , "::" , stringify ! ( mSource ) + )); + } + #[repr(C)] + #[derive(Debug)] pub struct AnimationPropertySegment { pub mFromKey: f32, pub mToKey: f32, @@ -11874,7 +11849,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct PseudoElementHashEntry { pub _base: root::PLDHashEntryHdr, pub mElement: root::RefPtr<root::mozilla::dom::Element>, @@ -12038,6 +12012,76 @@ pub mod root { "Alignment of field: " , stringify ! ( ServoMediaList ) , "::" , stringify ! ( mRawList ) )); } + /** + * A PostTraversalTask is a task to be performed immediately after a Servo + * traversal. There are just a few tasks we need to perform, so we use this + * class rather than Runnables, to avoid virtual calls and some allocations. + * + * A PostTraversalTask is only safe to run immediately after the Servo + * traversal, since it can hold raw pointers to DOM objects. + */ + #[repr(C)] + #[derive(Debug, Copy)] + pub struct PostTraversalTask { + pub mType: root::mozilla::PostTraversalTask_Type, + pub mTarget: *mut ::std::os::raw::c_void, + pub mResult: root::nsresult, + } + #[repr(i32)] + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum PostTraversalTask_Type { + ResolveFontFaceLoadedPromise = 0, + RejectFontFaceLoadedPromise = 1, + DispatchLoadingEventAndReplaceReadyPromise = 2, + DispatchFontFaceSetCheckLoadingFinishedAfterDelay = 3, + LoadFontEntry = 4, + } + #[test] + fn bindgen_test_layout_PostTraversalTask() { + assert_eq!(::std::mem::size_of::<PostTraversalTask>() , 24usize , + concat ! ( + "Size of: " , stringify ! ( PostTraversalTask ) )); + assert_eq! (::std::mem::align_of::<PostTraversalTask>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( PostTraversalTask ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const PostTraversalTask ) ) . mType as + * const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( + PostTraversalTask ) , "::" , stringify ! ( mType ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const PostTraversalTask ) ) . mTarget + as * const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( + PostTraversalTask ) , "::" , stringify ! ( mTarget ) + )); + assert_eq! (unsafe { + & ( * ( 0 as * const PostTraversalTask ) ) . mResult + as * const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( + PostTraversalTask ) , "::" , stringify ! ( mResult ) + )); + } + impl Clone for PostTraversalTask { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct ServoStyleRuleMap { + _unused: [u8; 0], + } + #[repr(u8)] + /** + * A few flags used to track which kind of stylist state we may need to + * update. + */ + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum StylistState { + NotDirty = 0, + StyleSheetsDirty = 1, + FullyDirty = 2, + } #[repr(C)] #[derive(Debug)] pub struct CSSFontFaceDescriptors { @@ -17455,7 +17499,6 @@ pub mod root { APPEND_UNSCROLLED_ONLY = 4, } #[repr(C)] - #[derive(Debug)] pub struct nsIPresShell_PointerCaptureInfo { pub mPendingContent: root::nsCOMPtr, pub mOverrideContent: root::nsCOMPtr, @@ -20578,6 +20621,214 @@ pub mod root { "Alignment of field: " , stringify ! ( nsStyleEffects ) , "::" , stringify ! ( mMixBlendMode ) )); } + /** + * We want C++ to be abe to read the style struct fields of ComputedValues + * so we define this type on the C++ side and use the bindgenned version + * on the Rust side. + * + * C++ just sees pointers and opaque types here, so bindgen will attempt to generate a Copy + * impl. This will fail because the bindgenned version contains owned types. Opt out. + * + * <div rustbindgen nocopy></div> + */ + #[repr(C)] + #[derive(Debug)] + pub struct ServoComputedValues { + pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>, + pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>, + pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>, + pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>, + pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>, + pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>, + pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>, + pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>, + pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>, + pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>, + pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>, + pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>, + pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>, + pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>, + pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>, + pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>, + pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>, + pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>, + pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>, + pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>, + pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>, + pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>, + pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>, + pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap, + pub writing_mode: ::gecko_bindings::structs::ServoWritingMode, + pub font_computation_data: ::gecko_bindings::structs::ServoFontComputationData, + /// The rule node representing the ordered list of rules matched for this + /// node. Can be None for default values and text nodes. This is + /// essentially an optimization to avoid referencing the root rule node. + pub rules: ::gecko_bindings::structs::ServoRuleNode, + /// The element's computed values if visited, only computed if there's a + /// relevant link for this element. A element's "relevant link" is the + /// element being matched if it is a link or the nearest ancestor link. + pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle, + pub flags: ::gecko_bindings::structs::ServoComputedValueFlags, + } + #[test] + fn bindgen_test_layout_ServoComputedValues() { + assert_eq!(::std::mem::size_of::<ServoComputedValues>() , 232usize , + concat ! ( + "Size of: " , stringify ! ( ServoComputedValues ) )); + assert_eq! (::std::mem::align_of::<ServoComputedValues>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( ServoComputedValues ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Font as * + const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Font ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Color as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Color ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . List as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( List ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Text as * + const _ as usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Text ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Visibility + as * const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Visibility ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + UserInterface as * const _ as usize } , 40usize , concat ! + ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( UserInterface ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . TableBorder + as * const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( TableBorder ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . SVG as * + const _ as usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( SVG ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Background + as * const _ as usize } , 64usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Background ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Position as + * const _ as usize } , 72usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Position ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . TextReset + as * const _ as usize } , 80usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( TextReset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Display as + * const _ as usize } , 88usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Display ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Content as + * const _ as usize } , 96usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Content ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . UIReset as + * const _ as usize } , 104usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( UIReset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Table as * + const _ as usize } , 112usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Table ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Margin as * + const _ as usize } , 120usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Margin ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Padding as + * const _ as usize } , 128usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Padding ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Border as * + const _ as usize } , 136usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Border ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Outline as + * const _ as usize } , 144usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Outline ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . XUL as * + const _ as usize } , 152usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( XUL ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . SVGReset as + * const _ as usize } , 160usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( SVGReset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Column as * + const _ as usize } , 168usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Column ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . Effects as + * const _ as usize } , 176usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( Effects ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + custom_properties as * const _ as usize } , 184usize , + concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( custom_properties ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + writing_mode as * const _ as usize } , 192usize , concat ! + ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( writing_mode ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + font_computation_data as * const _ as usize } , 196usize , + concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( font_computation_data ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . rules as * + const _ as usize } , 208usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( rules ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . + visited_style as * const _ as usize } , 216usize , concat + ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( visited_style ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const ServoComputedValues ) ) . flags as * + const _ as usize } , 224usize , concat ! ( + "Alignment of field: " , stringify ! ( ServoComputedValues + ) , "::" , stringify ! ( flags ) )); + } #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum WeakMapTraceKind { @@ -21121,7 +21372,6 @@ pub mod root { * of nsIContent children and provides access to them. */ #[repr(C)] - #[derive(Debug)] pub struct nsINode { pub _base: root::mozilla::dom::EventTarget, pub mNodeInfo: root::RefPtr<root::mozilla::dom::NodeInfo>, @@ -25236,10 +25486,138 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] - pub struct nsBindingManager { + pub struct nsCSSRuleProcessor { _unused: [u8; 0], } #[repr(C)] + pub struct nsBindingManager { + pub _base: root::nsStubMutationObserver, + pub mRefCnt: root::nsCycleCollectingAutoRefCnt, + pub mBoundContentSet: u64, + pub mWrapperTable: u64, + pub mDocumentTable: u64, + pub mLoadingDocTable: u64, + pub mAttachedStack: root::nsBindingList, + pub mProcessingAttachedStack: bool, + pub mDestroyed: bool, + pub mAttachedStackSizeOnOutermost: u32, + pub mProcessAttachedQueueEvent: u64, + pub mDocument: *mut root::nsIDocument, + } + pub type nsBindingManager_HasThreadSafeRefCnt = root::mozilla::FalseType; + #[repr(u32)] + /** + * Notify the binding manager that an element + * has been removed from its document, + * so that it can update any bindings or + * nsIAnonymousContentCreator-created anonymous + * content that may depend on the document. + * @param aContent the element that's being moved + * @param aOldDocument the old document in which the + * content resided. + * @param aDestructorHandling whether or not to run the possible XBL + * destructor. + */ + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum nsBindingManager_DestructorHandling { + eRunDtor = 0, + eDoNotRunDtor = 1, + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsBindingManager_cycleCollection { + pub _base: root::nsXPCOMCycleCollectionParticipant, + } + #[test] + fn bindgen_test_layout_nsBindingManager_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsBindingManager_cycleCollection>() , + 16usize , concat ! ( + "Size of: " , stringify ! ( + nsBindingManager_cycleCollection ) )); + assert_eq! (::std::mem::align_of::<nsBindingManager_cycleCollection>() + , 8usize , concat ! ( + "Alignment of " , stringify ! ( + nsBindingManager_cycleCollection ) )); + } + impl Clone for nsBindingManager_cycleCollection { + fn clone(&self) -> Self { *self } + } + pub type nsBindingManager_WrapperHashtable = u8; + extern "C" { + #[link_name = "_ZN16nsBindingManager21_cycleCollectorGlobalE"] + pub static mut nsBindingManager__cycleCollectorGlobal: + root::nsBindingManager_cycleCollection; + } + #[test] + fn bindgen_test_layout_nsBindingManager() { + assert_eq!(::std::mem::size_of::<nsBindingManager>() , 80usize , + concat ! ( "Size of: " , stringify ! ( nsBindingManager ) + )); + assert_eq! (::std::mem::align_of::<nsBindingManager>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( nsBindingManager ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mRefCnt as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mRefCnt ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mBoundContentSet as * const _ as usize } , 16usize , + concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mBoundContentSet ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mWrapperTable + as * const _ as usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mWrapperTable ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mDocumentTable + as * const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mDocumentTable ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mLoadingDocTable as * const _ as usize } , 40usize , + concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mLoadingDocTable ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mAttachedStack + as * const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mAttachedStack ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mProcessingAttachedStack as * const _ as usize } , 56usize + , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mProcessingAttachedStack ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mDestroyed as + * const _ as usize } , 57usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mDestroyed ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mAttachedStackSizeOnOutermost as * const _ as usize } , + 60usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mAttachedStackSizeOnOutermost ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . + mProcessAttachedQueueEvent as * const _ as usize } , + 64usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mProcessAttachedQueueEvent ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsBindingManager ) ) . mDocument as * + const _ as usize } , 72usize , concat ! ( + "Alignment of field: " , stringify ! ( nsBindingManager ) + , "::" , stringify ! ( mDocument ) )); + } + #[repr(C)] #[derive(Debug)] pub struct nsCSSCounterStyleRule { pub _base: root::mozilla::css::Rule, @@ -25298,7 +25676,6 @@ pub mod root { * is supported by all content objects. */ #[repr(C)] - #[derive(Debug)] pub struct nsIContent { pub _base: root::nsINode, } @@ -25383,10 +25760,65 @@ pub mod root { assert_eq! (::std::mem::align_of::<nsIContent>() , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIContent ) )); } + /** + * An nsStyleContext represents the computed style data for an element. + * The computed style data are stored in a set of structs (see + * nsStyleStruct.h) that are cached either on the style context or in + * the rule tree (see nsRuleNode.h for a description of this caching and + * how the cached structs are shared). + * + * Since the data in |nsIStyleRule|s and |nsRuleNode|s are immutable + * (with a few exceptions, like system color changes), the data in an + * nsStyleContext are also immutable (with the additional exception of + * GetUniqueStyleData). When style data change, + * ElementRestyler::Restyle creates a new style context. + * + * Style contexts are reference counted. References are generally held + * by: + * 1. the |nsIFrame|s that are using the style context and + * 2. any *child* style contexts (this might be the reverse of + * expectation, but it makes sense in this case) + */ #[repr(C)] - #[derive(Debug, Copy, Clone)] + #[derive(Debug)] pub struct nsStyleContext { - _unused: [u8; 0], + pub mParent: root::RefPtr<root::nsStyleContext>, + pub mStyleIfVisited: root::RefPtr<root::nsStyleContext>, + pub mPseudoTag: root::nsCOMPtr, + pub mBits: u64, + pub mRefCnt: u32, + } + #[test] + fn bindgen_test_layout_nsStyleContext() { + assert_eq!(::std::mem::size_of::<nsStyleContext>() , 40usize , concat + ! ( "Size of: " , stringify ! ( nsStyleContext ) )); + assert_eq! (::std::mem::align_of::<nsStyleContext>() , 8usize , concat + ! ( "Alignment of " , stringify ! ( nsStyleContext ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mParent as * + const _ as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mParent ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mStyleIfVisited + as * const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mStyleIfVisited ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mPseudoTag as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mPseudoTag ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mBits as * const + _ as usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mBits ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const nsStyleContext ) ) . mRefCnt as * + const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( nsStyleContext ) , + "::" , stringify ! ( mRefCnt ) )); } #[repr(C)] pub struct nsPresContext { @@ -28483,7 +28915,6 @@ pub mod root { } pub const kNameSpaceID_None: i32 = 0; #[repr(C)] - #[derive(Debug)] pub struct nsNodeInfoManager { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub mNodeInfoHash: *mut root::PLHashTable, @@ -28902,7 +29333,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct nsDOMAttributeMap { pub _base: root::nsIDOMMozNamedAttrMap, pub _base_1: root::nsWrapperCache, @@ -29136,7 +29566,6 @@ pub mod root { _unused: [u8; 0], } #[repr(C)] - #[derive(Debug)] pub struct nsXBLBinding { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub mMarkedForDeath: bool, @@ -30255,7 +30684,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct CapturingContentInfo { pub mAllowed: bool, pub mPointerLock: bool, @@ -30609,6 +31037,58 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] + pub struct nsIInterfaceInfo { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsIXPConnectJSObjectHolder { + pub _base: root::nsISupports, + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsIXPConnectJSObjectHolder_COMTypeInfo { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_nsIXPConnectJSObjectHolder() { + assert_eq!(::std::mem::size_of::<nsIXPConnectJSObjectHolder>() , + 8usize , concat ! ( + "Size of: " , stringify ! ( nsIXPConnectJSObjectHolder ) + )); + assert_eq! (::std::mem::align_of::<nsIXPConnectJSObjectHolder>() , + 8usize , concat ! ( + "Alignment of " , stringify ! ( nsIXPConnectJSObjectHolder + ) )); + } + impl Clone for nsIXPConnectJSObjectHolder { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsIXPConnectWrappedJS { + pub _base: root::nsIXPConnectJSObjectHolder, + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsIXPConnectWrappedJS_COMTypeInfo { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_nsIXPConnectWrappedJS() { + assert_eq!(::std::mem::size_of::<nsIXPConnectWrappedJS>() , 8usize , + concat ! ( + "Size of: " , stringify ! ( nsIXPConnectWrappedJS ) )); + assert_eq! (::std::mem::align_of::<nsIXPConnectWrappedJS>() , 8usize , + concat ! ( + "Alignment of " , stringify ! ( nsIXPConnectWrappedJS ) + )); + } + impl Clone for nsIXPConnectWrappedJS { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] pub struct nsISimpleEnumerator { _unused: [u8; 0], } @@ -37284,6 +37764,13 @@ pub mod root { pub type RawGeckoGfxMatrix4x4 = [root::mozilla::gfx::Float; 16usize]; pub type RawGeckoStyleChildrenIterator = root::mozilla::dom::StyleChildrenIterator; + pub type ServoComputedValuesBorrowed = *const root::ServoComputedValues; + pub type RawServoDeclarationBlockBorrowed = + *const root::RawServoDeclarationBlock; + pub type ServoStyleContextBorrowed = + *const root::mozilla::ServoStyleContext; + pub type ServoStyleContextBorrowedOrNull = + *const root::mozilla::ServoStyleContext; pub type RawServoAnimationValueMapBorrowedMut = *mut root::RawServoAnimationValueMap; pub type RawGeckoNodeBorrowed = *const root::RawGeckoNode; @@ -37598,6 +38085,11 @@ pub mod root { pub struct nsIConsoleReportCollector { _unused: [u8; 0], } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct CSSRuleListImpl { + _unused: [u8; 0], + } /** * An nsMediaQueryResultCacheKey records what feature/value combinations * a set of media query results are valid for. This allows the caller @@ -37838,6 +38330,11 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] + pub struct nsXBLDocumentInfo { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] pub struct ElementRuleProcessorData { _unused: [u8; 0], } @@ -37949,7 +38446,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug)] pub struct nsIAttribute { pub _base: root::nsINode, pub mAttrMap: root::RefPtr<root::nsDOMAttributeMap>, @@ -37972,6 +38468,35 @@ pub mod root { "::" , stringify ! ( mAttrMap ) )); } /** + * There are two advantages to inheriting from nsStubMutationObserver + * rather than directly from nsIMutationObserver: + * 1. smaller compiled code size (since there's no need for the code + * for the empty virtual function implementations for every + * nsIMutationObserver implementation) + * 2. the performance of document's loop over observers benefits from + * the fact that more of the functions called are the same (which + * can reduce instruction cache misses and perhaps improve branch + * prediction) + */ + #[repr(C)] + #[derive(Debug, Copy)] + pub struct nsStubMutationObserver { + pub _base: root::nsIMutationObserver, + } + #[test] + fn bindgen_test_layout_nsStubMutationObserver() { + assert_eq!(::std::mem::size_of::<nsStubMutationObserver>() , 8usize , + concat ! ( + "Size of: " , stringify ! ( nsStubMutationObserver ) )); + assert_eq! (::std::mem::align_of::<nsStubMutationObserver>() , 8usize + , concat ! ( + "Alignment of " , stringify ! ( nsStubMutationObserver ) + )); + } + impl Clone for nsStubMutationObserver { + fn clone(&self) -> Self { *self } + } + /** * Structure used as a key for caching Attrs in nsDOMAttributeMap's mAttributeCache. */ #[repr(C)] @@ -38192,10 +38717,54 @@ pub mod root { impl Clone for LookAndFeelInt { fn clone(&self) -> Self { *self } } + /** + * An object implementing |nsIStyleRule| (henceforth, a rule) represents + * immutable stylistic information that either applies or does not apply + * to a given element. It belongs to an object or group of objects that + * implement |nsIStyleSheet| and |nsIStyleRuleProcessor| (henceforth, a + * sheet). + * + * A rule becomes relevant to the computation of style data when + * |nsIStyleRuleProcessor::RulesMatching| creates a rule node that + * points to the rule. (A rule node, |nsRuleNode|, is a node in the + * rule tree, which is a lexicographic tree indexed by rules. The path + * from the root of the rule tree to the |nsRuleNode| for a given + * |nsStyleContext| contains exactly the rules that match the element + * that the style context is for, in priority (weight, origin, + * specificity) order.) + * + * The computation of style data uses the rule tree, which calls + * |nsIStyleRule::MapRuleInfoInto| below. + * + * It is worth emphasizing that the data represented by a rule + * implementation are immutable. When the data need to be changed, a + * new rule object must be created. Failing to do this will lead to + * bugs in the handling of dynamic style changes, since the rule tree + * caches the results of |MapRuleInfoInto|. + * + * |nsIStyleRule| objects are owned by |nsRuleNode| objects (in addition + * to typically being owned by their sheet), which are in turn garbage + * collected (with the garbage collection roots being style contexts). + */ #[repr(C)] - #[derive(Debug, Copy, Clone)] + #[derive(Debug, Copy)] pub struct nsIStyleRule { - _unused: [u8; 0], + pub _base: root::nsISupports, + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsIStyleRule_COMTypeInfo { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_nsIStyleRule() { + assert_eq!(::std::mem::size_of::<nsIStyleRule>() , 8usize , concat ! ( + "Size of: " , stringify ! ( nsIStyleRule ) )); + assert_eq! (::std::mem::align_of::<nsIStyleRule>() , 8usize , concat ! + ( "Alignment of " , stringify ! ( nsIStyleRule ) )); + } + impl Clone for nsIStyleRule { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] @@ -38502,6 +39071,27 @@ pub mod root { pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_placeholder: u32 = 8; pub const SERVO_CSS_PSEUDO_ELEMENT_FLAGS_mozColorSwatch: u32 = 12; #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct ElementDependentRuleProcessorData { + _unused: [u8; 0], + } + pub type nsBindingList = root::nsTArray<root::RefPtr<root::nsXBLBinding>>; + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsRuleData { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsCSSFontFeatureValuesRule { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct nsCSSPageRule { + _unused: [u8; 0], + } + #[repr(C)] #[derive(Debug, Copy)] pub struct nsIDOMCSSCounterStyleRule { pub _base: root::nsISupports, @@ -38849,7 +39439,7 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_187475_instantiation_33() { + fn __bindgen_test_layout__bindgen_ty_id_193442_instantiation_33() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -38858,7 +39448,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_187511_instantiation_34() { + fn __bindgen_test_layout__bindgen_ty_id_193478_instantiation_34() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -39832,7 +40422,20 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_122() { + fn __bindgen_test_layout_nsTArray_instantiation_122() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + } + #[test] + fn __bindgen_test_layout_nsCOMPtr_instantiation_123() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39843,7 +40446,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_123() { + fn __bindgen_test_layout_nsTArray_instantiation_124() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39854,7 +40457,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_124() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_125() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39865,7 +40468,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_125() { + fn __bindgen_test_layout_already_AddRefed_instantiation_126() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39876,7 +40479,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_126() { + fn __bindgen_test_layout_already_AddRefed_instantiation_127() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39887,7 +40490,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_127() { + fn __bindgen_test_layout_RefPtr_instantiation_128() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39898,7 +40501,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_128() { + fn __bindgen_test_layout_nsTArray_instantiation_129() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39909,7 +40512,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_129() { + fn __bindgen_test_layout_already_AddRefed_instantiation_130() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39920,7 +40523,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_130() { + fn __bindgen_test_layout_MutableHandle_instantiation_131() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39931,7 +40534,7 @@ pub mod root { root::JS::MutableHandle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_131() { + fn __bindgen_test_layout_already_AddRefed_instantiation_132() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39942,7 +40545,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_132() { + fn __bindgen_test_layout_already_AddRefed_instantiation_133() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39953,7 +40556,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_133() { + fn __bindgen_test_layout_already_AddRefed_instantiation_134() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39964,7 +40567,7 @@ pub mod root { root::already_AddRefed<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_134() { + fn __bindgen_test_layout_RefPtr_instantiation_135() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39975,7 +40578,20 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_135() { + fn __bindgen_test_layout_nsTArray_instantiation_136() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::Element>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::dom::Element>> ) + )); + } + #[test] + fn __bindgen_test_layout_Handle_instantiation_137() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39986,7 +40602,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_136() { + fn __bindgen_test_layout_already_AddRefed_instantiation_138() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -39997,7 +40613,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_137() { + fn __bindgen_test_layout_already_AddRefed_instantiation_139() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40008,7 +40624,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_138() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_140() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40019,7 +40635,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_139() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_141() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40030,7 +40646,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_140() { + fn __bindgen_test_layout_RefPtr_instantiation_142() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40041,7 +40657,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_141() { + fn __bindgen_test_layout_nsTArray_instantiation_143() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40054,7 +40670,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_142() { + fn __bindgen_test_layout_nsTArray_instantiation_144() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40065,7 +40681,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_143() { + fn __bindgen_test_layout_Handle_instantiation_145() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40076,7 +40692,165 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_144() { + fn __bindgen_test_layout_already_AddRefed_instantiation_146() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_147() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_148() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_149() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_150() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_151() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_152() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_153() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_154() { + assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_155() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_156() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::RawServoAnimationValue>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::RawServoAnimationValue> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::RawServoAnimationValue>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::RawServoAnimationValue> ) )); + } + #[test] + fn __bindgen_test_layout_DefaultDelete_instantiation_157() { + assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , + 1usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::mozilla::DefaultDelete ) )); + assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>() , + 1usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::mozilla::DefaultDelete ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_158() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::ServoStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_159() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_DefaultDelete_instantiation_160() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40087,7 +40861,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_145() { + fn __bindgen_test_layout_UniquePtr_instantiation_161() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsISMILAttr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40098,7 +40872,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsISMILAttr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_146() { + fn __bindgen_test_layout_already_AddRefed_instantiation_162() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40109,7 +40883,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_147() { + fn __bindgen_test_layout_nsTArray_instantiation_163() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40120,7 +40894,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_148() { + fn __bindgen_test_layout_Handle_instantiation_164() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40131,7 +40905,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_149() { + fn __bindgen_test_layout_Handle_instantiation_165() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40142,7 +40916,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_150() { + fn __bindgen_test_layout_Handle_instantiation_166() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40153,7 +40927,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_151() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_167() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40166,7 +40940,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_152() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_168() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40177,7 +40951,40 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_153() { + fn __bindgen_test_layout_nsTArray_instantiation_169() { + assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_170() { + assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>() + , 16usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsRefPtrHashKey<root::nsIContent> ) )); + assert_eq!(::std::mem::align_of::<root::nsRefPtrHashKey<root::nsIContent>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsRefPtrHashKey<root::nsIContent> ) )); + } + #[test] + fn __bindgen_test_layout_nsTHashtable_instantiation_171() { + assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! + ( + "Size of template specialization: " , stringify ! ( + [u64; 5usize] ) )); + assert_eq!(::std::mem::align_of::<[u64; 5usize]>() , 8usize , concat ! + ( + "Alignment of template specialization: " , stringify ! ( + [u64; 5usize] ) )); + } + #[test] + fn __bindgen_test_layout_Handle_instantiation_172() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40188,7 +40995,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_154() { + fn __bindgen_test_layout_nsTArray_instantiation_173() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40199,7 +41006,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_155() { + fn __bindgen_test_layout_nsTArray_instantiation_174() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40210,7 +41017,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_156() { + fn __bindgen_test_layout_already_AddRefed_instantiation_175() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40221,7 +41028,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_157() { + fn __bindgen_test_layout_already_AddRefed_instantiation_176() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40232,7 +41039,99 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_158() { + fn __bindgen_test_layout_already_AddRefed_instantiation_177() { + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleContext>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::already_AddRefed<root::nsStyleContext> ) )); + } + #[test] + fn __bindgen_test_layout_nsCOMPtr_instantiation_178() { + assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! + ( + "Size of template specialization: " , stringify ! ( + root::nsCOMPtr ) )); + assert_eq!(::std::mem::align_of::<root::nsCOMPtr>() , 8usize , concat + ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsCOMPtr ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_179() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_180() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_181() { + assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<*mut root::mozilla::StyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_RefPtr_instantiation_182() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::CSSStyleSheet>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::mozilla::CSSStyleSheet> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_183() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::mozilla::CSSStyleSheet>> + ) )); + } + #[test] + fn __bindgen_test_layout_nsCOMPtr_instantiation_184() { + assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! + ( + "Size of template specialization: " , stringify ! ( + root::nsCOMPtr ) )); + assert_eq!(::std::mem::align_of::<root::nsCOMPtr>() , 8usize , concat + ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsCOMPtr ) )); + } + #[test] + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_185() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -40241,7 +41140,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_159() { + fn __bindgen_test_layout_already_AddRefed_instantiation_186() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40252,7 +41151,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_160() { + fn __bindgen_test_layout_nsTArray_instantiation_187() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40263,7 +41162,7 @@ pub mod root { root::nsTArray<root::nsRect> ) )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_161() { + fn __bindgen_test_layout_NotNull_instantiation_188() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40276,7 +41175,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_162() { + fn __bindgen_test_layout_NotNull_instantiation_189() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40289,7 +41188,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_163() { + fn __bindgen_test_layout_already_AddRefed_instantiation_190() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsITimer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40300,7 +41199,7 @@ pub mod root { root::already_AddRefed<root::nsITimer> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_164() { + fn __bindgen_test_layout_DefaultDelete_instantiation_191() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40311,7 +41210,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_165() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_192() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40322,7 +41221,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_166() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_193() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40333,7 +41232,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_167() { + fn __bindgen_test_layout_nsTArray_instantiation_194() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40344,7 +41243,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_168() { + fn __bindgen_test_layout_already_AddRefed_instantiation_195() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40355,7 +41254,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_169() { + fn __bindgen_test_layout_already_AddRefed_instantiation_196() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40366,7 +41265,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_170() { + fn __bindgen_test_layout_already_AddRefed_instantiation_197() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40377,7 +41276,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_171() { + fn __bindgen_test_layout_already_AddRefed_instantiation_198() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40388,7 +41287,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_172() { + fn __bindgen_test_layout_already_AddRefed_instantiation_199() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40399,7 +41298,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_173() { + fn __bindgen_test_layout_Handle_instantiation_200() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40410,7 +41309,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_174() { + fn __bindgen_test_layout_Handle_instantiation_201() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40421,7 +41320,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_175() { + fn __bindgen_test_layout_Handle_instantiation_202() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40432,7 +41331,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_176() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_203() { assert_eq!(::std::mem::size_of::<[u64; 30usize]>() , 240usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40443,7 +41342,7 @@ pub mod root { [u64; 30usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_177() { + fn __bindgen_test_layout_already_AddRefed_instantiation_204() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40454,7 +41353,7 @@ pub mod root { root::already_AddRefed<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_178() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_205() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40465,7 +41364,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_179() { + fn __bindgen_test_layout_Handle_instantiation_206() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40476,7 +41375,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_180() { + fn __bindgen_test_layout_nsTArray_instantiation_207() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40487,7 +41386,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_181() { + fn __bindgen_test_layout_Handle_instantiation_208() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40498,7 +41397,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_182() { + fn __bindgen_test_layout_OwningNonNull_instantiation_209() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40509,7 +41408,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_183() { + fn __bindgen_test_layout_OwningNonNull_instantiation_210() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40520,7 +41419,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_184() { + fn __bindgen_test_layout_OwningNonNull_instantiation_211() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40531,7 +41430,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_185() { + fn __bindgen_test_layout_Handle_instantiation_212() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40542,7 +41441,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_186() { + fn __bindgen_test_layout_Handle_instantiation_213() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40553,7 +41452,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_187() { + fn __bindgen_test_layout_Handle_instantiation_214() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40564,7 +41463,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_188() { + fn __bindgen_test_layout_MutableHandle_instantiation_215() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40575,7 +41474,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_189() { + fn __bindgen_test_layout_Handle_instantiation_216() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::jsid>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40586,7 +41485,7 @@ pub mod root { root::JS::Handle<root::jsid> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_190() { + fn __bindgen_test_layout_MutableHandle_instantiation_217() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::PropertyDescriptor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40597,7 +41496,7 @@ pub mod root { root::JS::MutableHandle<root::JS::PropertyDescriptor> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_191() { + fn __bindgen_test_layout_Handle_instantiation_218() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::jsid>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40608,7 +41507,7 @@ pub mod root { root::JS::Handle<root::jsid> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_192() { + fn __bindgen_test_layout_MutableHandle_instantiation_219() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::PropertyDescriptor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40619,7 +41518,7 @@ pub mod root { root::JS::MutableHandle<root::JS::PropertyDescriptor> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_193() { + fn __bindgen_test_layout_Handle_instantiation_220() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40630,7 +41529,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_194() { + fn __bindgen_test_layout_Handle_instantiation_221() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40641,7 +41540,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_195() { + fn __bindgen_test_layout_Handle_instantiation_222() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40652,7 +41551,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_196() { + fn __bindgen_test_layout_MutableHandle_instantiation_223() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40663,7 +41562,7 @@ pub mod root { root::JS::MutableHandle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_197() { + fn __bindgen_test_layout_RefPtr_instantiation_224() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::XBLChildrenElement>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40674,7 +41573,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::XBLChildrenElement> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_198() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_225() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40685,7 +41584,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_199() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_226() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<::std::os::raw::c_void>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40696,7 +41595,7 @@ pub mod root { root::nsPtrHashKey<::std::os::raw::c_void> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_200() { + fn __bindgen_test_layout_already_AddRefed_instantiation_227() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40707,7 +41606,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_201() { + fn __bindgen_test_layout_already_AddRefed_instantiation_228() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40718,7 +41617,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_202() { + fn __bindgen_test_layout_NotNull_instantiation_229() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40731,7 +41630,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_203() { + fn __bindgen_test_layout_already_AddRefed_instantiation_230() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40742,7 +41641,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_204() { + fn __bindgen_test_layout_already_AddRefed_instantiation_231() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40752,8 +41651,16 @@ pub mod root { "Alignment of template specialization: " , stringify ! ( root::already_AddRefed<root::nsIAtom> ) )); } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct _bindgen_ty_11 { + pub _address: u8, + } + impl Clone for _bindgen_ty_11 { + fn clone(&self) -> Self { *self } + } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_205() { + fn __bindgen_test_layout_already_AddRefed_instantiation_232() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40764,7 +41671,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_206() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_233() { assert_eq!(::std::mem::size_of::<[u64; 30usize]>() , 240usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40775,7 +41682,7 @@ pub mod root { [u64; 30usize] ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_207() { + fn __bindgen_test_layout_MutableHandle_instantiation_234() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40786,7 +41693,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_208() { + fn __bindgen_test_layout_MutableHandle_instantiation_235() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40797,7 +41704,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_209() { + fn __bindgen_test_layout_already_AddRefed_instantiation_236() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40808,7 +41715,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_210() { + fn __bindgen_test_layout_DefaultDelete_instantiation_237() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40819,7 +41726,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_211() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_238() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40830,7 +41737,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_212() { + fn __bindgen_test_layout_Rooted_instantiation_239() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40841,7 +41748,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_213() { + fn __bindgen_test_layout_Rooted_instantiation_240() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40852,7 +41759,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_214() { + fn __bindgen_test_layout_already_AddRefed_instantiation_241() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsISupports>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40863,7 +41770,7 @@ pub mod root { root::already_AddRefed<root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_215() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_242() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40874,7 +41781,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_216() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_243() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40885,7 +41792,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_NotNull_instantiation_217() { + fn __bindgen_test_layout_NotNull_instantiation_244() { assert_eq!(::std::mem::size_of::<root::mozilla::NotNull<*const root::mozilla::Encoding>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40898,7 +41805,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_218() { + fn __bindgen_test_layout_nsTArray_instantiation_245() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40909,7 +41816,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_219() { + fn __bindgen_test_layout_Handle_instantiation_246() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40920,7 +41827,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_220() { + fn __bindgen_test_layout_MutableHandle_instantiation_247() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40931,7 +41838,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_221() { + fn __bindgen_test_layout_Handle_instantiation_248() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40942,7 +41849,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_222() { + fn __bindgen_test_layout_MutableHandle_instantiation_249() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40953,7 +41860,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_223() { + fn __bindgen_test_layout_nsTArray_instantiation_250() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40964,7 +41871,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_224() { + fn __bindgen_test_layout_Handle_instantiation_251() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40975,7 +41882,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_225() { + fn __bindgen_test_layout_RefPtr_instantiation_252() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40986,7 +41893,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_226() { + fn __bindgen_test_layout_RefPtr_instantiation_253() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -40997,7 +41904,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_227() { + fn __bindgen_test_layout_RefPtr_instantiation_254() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41008,7 +41915,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_228() { + fn __bindgen_test_layout_nsTArray_instantiation_255() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::css::SheetLoadData>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41021,7 +41928,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_229() { + fn __bindgen_test_layout_RefPtr_instantiation_256() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41032,7 +41939,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_230() { + fn __bindgen_test_layout_already_AddRefed_instantiation_257() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41043,7 +41950,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_231() { + fn __bindgen_test_layout_already_AddRefed_instantiation_258() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41054,7 +41961,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_232() { + fn __bindgen_test_layout_Handle_instantiation_259() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41065,7 +41972,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_233() { + fn __bindgen_test_layout_nsTArray_instantiation_260() { assert_eq!(::std::mem::size_of::<root::nsTArray<f64>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41076,7 +41983,7 @@ pub mod root { root::nsTArray<f64> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_234() { + fn __bindgen_test_layout_RefPtr_instantiation_261() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41089,7 +41996,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_235() { + fn __bindgen_test_layout_nsTArray_instantiation_262() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41102,7 +42009,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_236() { + fn __bindgen_test_layout_RefPtr_instantiation_263() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41115,7 +42022,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_237() { + fn __bindgen_test_layout_UniquePtr_instantiation_264() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41126,7 +42033,7 @@ pub mod root { root::mozilla::UniquePtr<root::ProfilerBacktrace> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_238() { + fn __bindgen_test_layout_nsTArray_instantiation_265() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41137,7 +42044,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_239() { + fn __bindgen_test_layout_Handle_instantiation_266() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41148,7 +42055,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_240() { + fn __bindgen_test_layout_MutableHandle_instantiation_267() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41159,7 +42066,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_241() { + fn __bindgen_test_layout_Handle_instantiation_268() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41170,7 +42077,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_242() { + fn __bindgen_test_layout_MutableHandle_instantiation_269() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41181,7 +42088,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_243() { + fn __bindgen_test_layout_already_AddRefed_instantiation_270() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41192,7 +42099,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_244() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_271() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41203,7 +42110,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_245() { + fn __bindgen_test_layout_OwningNonNull_instantiation_272() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41216,7 +42123,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_246() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_273() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41227,7 +42134,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_247() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_274() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41238,7 +42145,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_248() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_275() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41249,7 +42156,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_249() { + fn __bindgen_test_layout_DefaultDelete_instantiation_276() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41260,7 +42167,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_250() { + fn __bindgen_test_layout_already_AddRefed_instantiation_277() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41271,7 +42178,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_251() { + fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_278() { assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41282,7 +42189,7 @@ pub mod root { root::nsMainThreadPtrHolder<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_252() { + fn __bindgen_test_layout_already_AddRefed_instantiation_279() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41293,7 +42200,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_253() { + fn __bindgen_test_layout_already_AddRefed_instantiation_280() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41304,7 +42211,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_254() { + fn __bindgen_test_layout_already_AddRefed_instantiation_281() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41315,7 +42222,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_255() { + fn __bindgen_test_layout_already_AddRefed_instantiation_282() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41326,7 +42233,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_256() { + fn __bindgen_test_layout_already_AddRefed_instantiation_283() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41337,7 +42244,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_257() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_284() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIDocument>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41348,7 +42255,7 @@ pub mod root { root::nsPtrHashKey<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_258() { + fn __bindgen_test_layout_already_AddRefed_instantiation_285() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41359,7 +42266,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_259() { + fn __bindgen_test_layout_DefaultDelete_instantiation_286() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41370,7 +42277,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_260() { + fn __bindgen_test_layout_UniquePtr_instantiation_287() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41381,7 +42288,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_261() { + fn __bindgen_test_layout_DefaultDelete_instantiation_288() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41392,7 +42299,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_262() { + fn __bindgen_test_layout_UniquePtr_instantiation_289() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41403,7 +42310,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_263() { + fn __bindgen_test_layout_already_AddRefed_instantiation_290() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41414,7 +42321,7 @@ pub mod root { root::already_AddRefed<root::nsStringBuffer> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_264() { + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_291() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -41423,7 +42330,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_265() { + fn __bindgen_test_layout_nsTArray_instantiation_292() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41434,7 +42341,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_266() { + fn __bindgen_test_layout_nsTArray_instantiation_293() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41445,7 +42352,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_267() { + fn __bindgen_test_layout_already_AddRefed_instantiation_294() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41456,7 +42363,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_268() { + fn __bindgen_test_layout_Maybe_instantiation_295() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41467,7 +42374,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_269() { + fn __bindgen_test_layout_Maybe_instantiation_296() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41478,7 +42385,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_270() { + fn __bindgen_test_layout_already_AddRefed_instantiation_297() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41489,7 +42396,7 @@ pub mod root { root::already_AddRefed<root::nsStyleImageRequest> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_271() { + fn __bindgen_test_layout_already_AddRefed_instantiation_298() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41500,7 +42407,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_272() { + fn __bindgen_test_layout_DefaultDelete_instantiation_299() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41511,7 +42418,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_273() { + fn __bindgen_test_layout_UniquePtr_instantiation_300() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41522,7 +42429,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_274() { + fn __bindgen_test_layout_DefaultDelete_instantiation_301() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41533,7 +42440,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_275() { + fn __bindgen_test_layout_UniquePtr_instantiation_302() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41544,7 +42451,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_276() { + fn __bindgen_test_layout_already_AddRefed_instantiation_303() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41555,7 +42462,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_277() { + fn __bindgen_test_layout_Maybe_instantiation_304() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41566,7 +42473,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_278() { + fn __bindgen_test_layout_DefaultDelete_instantiation_305() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41577,7 +42484,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_279() { + fn __bindgen_test_layout_DefaultDelete_instantiation_306() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41588,7 +42495,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_pair_instantiation_280() { + fn __bindgen_test_layout_pair_instantiation_307() { assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41599,7 +42506,7 @@ pub mod root { root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_281() { + fn __bindgen_test_layout_nsTArray_instantiation_308() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>>() , 8usize , concat ! ( @@ -41614,7 +42521,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_282() { + fn __bindgen_test_layout_nsTArray_instantiation_309() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41625,7 +42532,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_283() { + fn __bindgen_test_layout_nsTArray_instantiation_310() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41636,7 +42543,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_284() { + fn __bindgen_test_layout_nsTArray_instantiation_311() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41647,7 +42554,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_285() { + fn __bindgen_test_layout_RefPtr_instantiation_312() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::RawServoAnimationValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41658,7 +42565,7 @@ pub mod root { root::RefPtr<root::RawServoAnimationValue> ) )); } #[test] - fn __bindgen_test_layout_nsStyleAutoArray_instantiation_286() { + fn __bindgen_test_layout_nsStyleAutoArray_instantiation_313() { assert_eq!(::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>() , 64usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41669,7 +42576,7 @@ pub mod root { root::nsStyleAutoArray<root::mozilla::StyleAnimation> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_287() { + fn __bindgen_test_layout_DefaultDelete_instantiation_314() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41680,7 +42587,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_288() { + fn __bindgen_test_layout_UniquePtr_instantiation_315() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41691,7 +42598,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_289() { + fn __bindgen_test_layout_DefaultDelete_instantiation_316() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41702,7 +42609,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_290() { + fn __bindgen_test_layout_UniquePtr_instantiation_317() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41713,7 +42620,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_291() { + fn __bindgen_test_layout_RefPtr_instantiation_318() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41724,7 +42631,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_292() { + fn __bindgen_test_layout_RefPtr_instantiation_319() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41735,7 +42642,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_293() { + fn __bindgen_test_layout_NonNull_instantiation_320() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41748,7 +42655,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_294() { + fn __bindgen_test_layout_NonNull_instantiation_321() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::CSSPseudoElement>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41761,7 +42668,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_295() { + fn __bindgen_test_layout_Handle_instantiation_322() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41772,7 +42679,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_296() { + fn __bindgen_test_layout_MutableHandle_instantiation_323() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41783,7 +42690,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_297() { + fn __bindgen_test_layout_Maybe_instantiation_324() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41794,7 +42701,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_298() { + fn __bindgen_test_layout_Maybe_instantiation_325() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41805,7 +42712,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_BaseTimeDuration_instantiation_299() { + fn __bindgen_test_layout_BaseTimeDuration_instantiation_326() { assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41816,7 +42723,7 @@ pub mod root { root::mozilla::BaseTimeDuration ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_300() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_327() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41827,7 +42734,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_301() { + fn __bindgen_test_layout_already_AddRefed_instantiation_328() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41838,7 +42745,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_302() { + fn __bindgen_test_layout_already_AddRefed_instantiation_329() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41849,7 +42756,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_303() { + fn __bindgen_test_layout_nsTArray_instantiation_330() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41860,7 +42767,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_304() { + fn __bindgen_test_layout_nsTArray_instantiation_331() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41871,7 +42778,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_305() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_332() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41882,7 +42789,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_306() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_333() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41895,7 +42802,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_307() { + fn __bindgen_test_layout_already_AddRefed_instantiation_334() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41906,7 +42813,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_308() { + fn __bindgen_test_layout_nsTArray_instantiation_335() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41919,7 +42826,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_309() { + fn __bindgen_test_layout_Handle_instantiation_336() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41930,7 +42837,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_310() { + fn __bindgen_test_layout_Handle_instantiation_337() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41941,7 +42848,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_311() { + fn __bindgen_test_layout_RefPtr_instantiation_338() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41952,7 +42859,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::DOMRect> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_312() { + fn __bindgen_test_layout_Handle_instantiation_339() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41963,7 +42870,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_313() { + fn __bindgen_test_layout_MutableHandle_instantiation_340() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41974,7 +42881,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_314() { + fn __bindgen_test_layout_Sequence_instantiation_341() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -41983,7 +42890,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_315() { + fn __bindgen_test_layout_Handle_instantiation_342() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -41994,7 +42901,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_316() { + fn __bindgen_test_layout_Sequence_instantiation_343() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -42003,7 +42910,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_317() { + fn __bindgen_test_layout_Sequence_instantiation_344() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -42012,7 +42919,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_318() { + fn __bindgen_test_layout_Handle_instantiation_345() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42023,7 +42930,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_319() { + fn __bindgen_test_layout_Handle_instantiation_346() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42034,7 +42941,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_320() { + fn __bindgen_test_layout_MutableHandle_instantiation_347() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42045,7 +42952,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_321() { + fn __bindgen_test_layout_Handle_instantiation_348() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42056,7 +42963,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_322() { + fn __bindgen_test_layout_MutableHandle_instantiation_349() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42067,7 +42974,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_323() { + fn __bindgen_test_layout_Handle_instantiation_350() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42078,7 +42985,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_324() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_351() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42089,7 +42996,7 @@ pub mod root { root::nsRefPtrHashKey<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsClassHashtable_instantiation_325() { + fn __bindgen_test_layout_nsClassHashtable_instantiation_352() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42100,7 +43007,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_326() { + fn __bindgen_test_layout_Handle_instantiation_353() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42111,7 +43018,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_327() { + fn __bindgen_test_layout_nsTArray_instantiation_354() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42122,7 +43029,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_328() { + fn __bindgen_test_layout_nsTArray_instantiation_355() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42133,7 +43040,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_329() { + fn __bindgen_test_layout_nsTArray_instantiation_356() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42144,7 +43051,51 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_330() { + fn __bindgen_test_layout_RefPtr_instantiation_357() { + assert_eq!(::std::mem::size_of::<root::RefPtr<root::nsXBLBinding>>() , + 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::RefPtr<root::nsXBLBinding> ) )); + assert_eq!(::std::mem::align_of::<root::RefPtr<root::nsXBLBinding>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::RefPtr<root::nsXBLBinding> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_358() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::nsXBLBinding>>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::nsXBLBinding>> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::RefPtr<root::nsXBLBinding>>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::RefPtr<root::nsXBLBinding>> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_359() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::gfxFontFeature>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::gfxFontFeature> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::gfxFontFeature>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::gfxFontFeature> ) )); + } + #[test] + fn __bindgen_test_layout_nsTArray_instantiation_360() { + assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::gfx::FontVariation>>() + , 8usize , concat ! ( + "Size of template specialization: " , stringify ! ( + root::nsTArray<root::mozilla::gfx::FontVariation> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::gfx::FontVariation>>() + , 8usize , concat ! ( + "Alignment of template specialization: " , stringify ! ( + root::nsTArray<root::mozilla::gfx::FontVariation> ) )); + } + #[test] + fn __bindgen_test_layout_already_AddRefed_instantiation_361() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42155,7 +43106,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_331() { + fn __bindgen_test_layout_Handle_instantiation_362() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42166,7 +43117,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_332() { + fn __bindgen_test_layout_nsTArray_instantiation_363() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -42177,7 +43128,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_nsAutoPtr_instantiation_333() { + fn __bindgen_test_layout_nsAutoPtr_instantiation_364() { assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko/pseudo_element_definition.mako.rs b/components/style/gecko/pseudo_element_definition.mako.rs index 5eb08071d39..3f0c5c0f489 100644 --- a/components/style/gecko/pseudo_element_definition.mako.rs +++ b/components/style/gecko/pseudo_element_definition.mako.rs @@ -107,6 +107,25 @@ impl PseudoElement { } } + + /// Construct a `CSSPseudoElementType` from a pseudo-element + #[inline] + pub fn pseudo_type(&self) -> CSSPseudoElementType { + match *self { + % for pseudo in PSEUDOS: + % if not pseudo.is_anon_box(): + PseudoElement::${pseudo.capitalized()} => CSSPseudoElementType::${pseudo.original_ident}, + % endif + % endfor + _ => CSSPseudoElementType::NotPseudo + } + } + + /// Get a PseudoInfo for a pseudo + pub fn pseudo_info(&self) -> (*mut structs::nsIAtom, CSSPseudoElementType) { + (self.atom().as_ptr(), self.pseudo_type()) + } + /// Construct a pseudo-element from an anonymous box `Atom`. #[inline] pub fn from_anon_box_atom(atom: &Atom) -> Option<Self> { diff --git a/components/style/gecko/restyle_damage.rs b/components/style/gecko/restyle_damage.rs index a4a8fc1704a..471b95f0304 100644 --- a/components/style/gecko/restyle_damage.rs +++ b/components/style/gecko/restyle_damage.rs @@ -7,7 +7,6 @@ use gecko_bindings::bindings; use gecko_bindings::structs; use gecko_bindings::structs::{nsChangeHint, nsStyleContext}; -use gecko_bindings::sugar::ownership::FFIArcHelpers; use matching::{StyleChange, StyleDifference}; use properties::ComputedValues; use std::ops::{BitAnd, BitOr, BitOrAssign, Not}; @@ -56,7 +55,7 @@ impl GeckoRestyleDamage { let mut any_style_changed: bool = false; let hint = unsafe { bindings::Gecko_CalcStyleDifference(context, - new_style.as_borrowed(), + &new_style, &mut any_style_changed) }; let change = if any_style_changed { StyleChange::Changed } else { StyleChange::Unchanged }; diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs index 5fc618fee6c..6d50a0e83f2 100644 --- a/components/style/gecko/wrapper.rs +++ b/components/style/gecko/wrapper.rs @@ -64,7 +64,7 @@ use gecko_bindings::structs::EffectCompositor_CascadeLevel as CascadeLevel; use gecko_bindings::structs::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; use gecko_bindings::structs::NODE_IS_NATIVE_ANONYMOUS; use gecko_bindings::structs::nsIDocument_DocumentTheme as DocumentTheme; -use gecko_bindings::sugar::ownership::{FFIArcHelpers, HasArcFFI, HasSimpleFFI}; +use gecko_bindings::sugar::ownership::{HasArcFFI, HasSimpleFFI}; use logical_geometry::WritingMode; use media_queries::Device; use properties::{ComputedValues, parse_style_attribute}; @@ -1101,10 +1101,9 @@ impl<'le> TElement for GeckoElement<'le> { let computed_data = self.borrow_data(); let computed_values = computed_data.as_ref().map(|d| d.styles.primary()); - let computed_values_opt = - computed_values.map(|v| v.as_borrowed()); let before_change_values = - before_change_style.as_ref().map(|v| v.as_borrowed()); + before_change_style.as_ref().map(|x| &**x); + let computed_values_opt = computed_values.as_ref().map(|x| &***x); unsafe { Gecko_UpdateAnimations(self.0, before_change_values, diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 74b93402090..bfe1d981d1e 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -46,7 +46,6 @@ use gecko_bindings::structs; use gecko_bindings::structs::nsCSSPropertyID; use gecko_bindings::structs::nsStyleVariables; use gecko_bindings::sugar::ns_style_coord::{CoordDataValue, CoordData, CoordDataMut}; -use gecko_bindings::sugar::ownership::HasArcFFI; use gecko::values::convert_nscolor_to_rgba; use gecko::values::convert_rgba_to_nscolor; use gecko::values::GeckoStyleCoordConvertible; @@ -58,7 +57,7 @@ use properties::computed_value_flags::ComputedValueFlags; use properties::{longhands, FontComputationData, Importance, LonghandId}; use properties::{PropertyDeclaration, PropertyDeclarationBlock, PropertyDeclarationId}; use rule_tree::StrongRuleNode; -use std::mem::{forget, transmute, zeroed}; +use std::mem::{forget, uninitialized, transmute, zeroed}; use std::{cmp, ops, ptr}; use stylearc::{Arc, RawOffsetArc}; use values::{Auto, CustomIdent, Either, KeyframesName}; @@ -74,11 +73,27 @@ pub mod style_structs { } -pub use ::gecko_bindings::structs::mozilla::ServoComputedValues2 as ComputedValuesInner; +pub type ComputedValuesInner = ::gecko_bindings::structs::ServoComputedValues; -#[derive(Clone, Debug)] -pub struct ComputedValues { - pub inner: ComputedValuesInner +#[derive(Debug)] +#[repr(C)] +pub struct ComputedValues(::gecko_bindings::structs::mozilla::ServoStyleContext); + +impl Drop for ComputedValues { + fn drop(&mut self) { + unsafe { + bindings::Gecko_ServoStyleContext_Destroy(&mut self.0); + } + } +} + +unsafe impl Sync for ComputedValues {} +unsafe impl Send for ComputedValues {} + +impl Clone for ComputedValues { + fn clone(&self) -> Self { + unreachable!() + } } impl Clone for ComputedValuesInner { @@ -97,6 +112,9 @@ impl Clone for ComputedValuesInner { } } +pub type PseudoInfo = (*mut structs::nsIAtom, structs::CSSPseudoElementType); +pub type ParentStyleContextInfo<'a> = Option< &'a ComputedValues>; + impl ComputedValuesInner { pub fn new(custom_properties: Option<Arc<CustomPropertiesMap>>, writing_mode: WritingMode, @@ -134,21 +152,42 @@ impl ComputedValuesInner { % endfor } } - pub fn to_outer(self) -> Arc<ComputedValues> { - Arc::new(ComputedValues {inner: self}) + pub fn to_outer(self, device: &Device, parent: ParentStyleContextInfo, + info: Option<PseudoInfo>) -> Arc<ComputedValues> { + let (tag, ty) = if let Some(info) = info { + info + } else { + (ptr::null_mut(), structs::CSSPseudoElementType::NotPseudo) + }; + + unsafe { Self::to_outer_from_arc(Arc::new(self), device.pres_context(), parent, ty, tag) } + } + + pub unsafe fn to_outer_from_arc(s: Arc<Self>, pres_context: bindings::RawGeckoPresContextBorrowed, + parent: ParentStyleContextInfo, + pseudo_ty: structs::CSSPseudoElementType, + pseudo_tag: *mut structs::nsIAtom) -> Arc<ComputedValues> { + use gecko_bindings::sugar::ownership::FFIArcHelpers; + let arc = unsafe { + let arc: Arc<ComputedValues> = Arc::new(uninitialized()); + bindings::Gecko_ServoStyleContext_Init(&arc.0 as *const _ as *mut _, parent, pres_context, + s.into_strong(), pseudo_ty, pseudo_tag); + arc + }; + arc } } impl ops::Deref for ComputedValues { type Target = ComputedValuesInner; fn deref(&self) -> &ComputedValuesInner { - &self.inner + unsafe { &*self.0.mSource.mRawPtr } } } impl ops::DerefMut for ComputedValues { fn deref_mut(&mut self) -> &mut ComputedValuesInner { - &mut self.inner + unsafe { &mut *self.0.mSource.mRawPtr } } } @@ -197,12 +236,12 @@ impl ComputedValuesInner { } /// Gets a reference to the visited style, if any. - pub fn get_visited_style(&self) -> Option< & ComputedValuesInner> { - self.visited_style.as_ref().map(|x| &***x) + pub fn get_visited_style(&self) -> Option< & ComputedValues> { + self.visited_style.as_ref().map(|x| &**x) } /// Gets a reference to the visited style. Panic if no visited style exists. - pub fn visited_style(&self) -> &ComputedValuesInner { + pub fn visited_style(&self) -> &ComputedValues { self.get_visited_style().unwrap() } @@ -4801,7 +4840,7 @@ clip-path #[allow(non_snake_case, unused_variables)] pub unsafe extern "C" fn Servo_GetStyle${style_struct.gecko_name}(computed_values: ServoComputedValuesBorrowedOrNull) -> *const ${style_struct.gecko_ffi_name} { - ComputedValues::arc_from_borrowed(&computed_values).unwrap().get_${style_struct.name_lower}().get_gecko() + computed_values.unwrap().get_${style_struct.name_lower}().get_gecko() as *const ${style_struct.gecko_ffi_name} } </%def> diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs index 383bc5651ec..43248e0feae 100644 --- a/components/style/properties/properties.mako.rs +++ b/components/style/properties/properties.mako.rs @@ -1871,9 +1871,14 @@ pub mod style_structs { #[cfg(feature = "gecko")] -pub use gecko_properties::ComputedValues; -#[cfg(feature = "gecko")] -pub use gecko_properties::ComputedValuesInner; +pub use gecko_properties::{ComputedValues, ComputedValuesInner, ParentStyleContextInfo, PseudoInfo}; + +#[cfg(feature = "servo")] +/// Servo doesn't have style contexts so this is extraneous info +pub type PseudoInfo = (); +#[cfg(feature = "servo")] +/// Servo doesn't have style contexts so this is extraneous info +pub type ParentStyleContextInfo = (); #[cfg(feature = "servo")] @@ -1970,7 +1975,8 @@ impl ops::DerefMut for ComputedValues { #[cfg(feature = "servo")] impl ComputedValuesInner { /// Convert to an Arc<ComputedValues> - pub fn to_outer(self) -> Arc<ComputedValues> { + pub fn to_outer(self, _: &Device, _: ParentStyleContextInfo, + _: Option<PseudoInfo>) -> Arc<ComputedValues> { Arc::new(ComputedValues {inner: self}) } @@ -2011,13 +2017,13 @@ impl ComputedValuesInner { } /// Gets a reference to the visited style, if any. - pub fn get_visited_style(&self) -> Option< & ComputedValuesInner> { - self.visited_style.as_ref().map(|x| &***x) + pub fn get_visited_style(&self) -> Option< & ComputedValues> { + self.visited_style.as_ref().map(|x| &**x) } /// Gets a reference to the visited style. Panic if no visited style exists. - pub fn visited_style(&self) -> &ComputedValuesInner { - self.get_visited_style().as_ref().map(|x| &**x).unwrap() + pub fn visited_style(&self) -> &ComputedValues { + self.get_visited_style().unwrap() } /// Clone the visited style. Used for inheriting parent styles in diff --git a/components/style/servo/selector_parser.rs b/components/style/servo/selector_parser.rs index 6641cbd38ae..198f285e8d8 100644 --- a/components/style/servo/selector_parser.rs +++ b/components/style/servo/selector_parser.rs @@ -166,6 +166,9 @@ impl PseudoElement { pub fn canonical(&self) -> PseudoElement { self.clone() } + + /// Stub, only Gecko needs this + pub fn pseudo_info(&self) -> () { () } } /// The type used for storing pseudo-class string arguments. diff --git a/components/style/style_resolver.rs b/components/style/style_resolver.rs index 65d35aa6700..c4323ca6b60 100644 --- a/components/style/style_resolver.rs +++ b/components/style/style_resolver.rs @@ -47,7 +47,7 @@ pub struct PrimaryStyle { fn with_default_parent_styles<E, F, R>(element: E, f: F) -> R where E: TElement, - F: FnOnce(Option<&ComputedValuesInner>, Option<&ComputedValuesInner>) -> R, + F: FnOnce(Option<&ComputedValues>, Option<&ComputedValuesInner>) -> R, { let parent_el = element.inheritance_parent(); let parent_data = parent_el.as_ref().and_then(|e| e.borrow_data()); @@ -72,7 +72,7 @@ where layout_parent_style = Some(layout_parent_data.styles.primary()); } - f(parent_style.map(|s| &***s), layout_parent_style.map(|s| &***s)) + f(parent_style.map(|x| &**x), layout_parent_style.map(|s| &***s)) } impl<'a, 'ctx, 'le, E> StyleResolverForElement<'a, 'ctx, 'le, E> @@ -98,7 +98,7 @@ where /// Resolve just the style of a given element. pub fn resolve_primary_style( &mut self, - parent_style: Option<&ComputedValuesInner>, + parent_style: Option<&ComputedValues>, layout_parent_style: Option<&ComputedValuesInner>, ) -> PrimaryStyle { let primary_results = @@ -119,6 +119,7 @@ where relevant_link_found || parent_style.and_then(|s| s.get_visited_style()).is_some(); + let pseudo = self.element.implemented_pseudo_element(); if should_compute_visited_style { visited_style = Some(self.cascade_style( visited_rules.as_ref().or(Some(&primary_results.rule_node)), @@ -126,17 +127,16 @@ where parent_style, layout_parent_style, CascadeVisitedMode::Visited, - /* pseudo = */ None, + /* pseudo = */ pseudo.as_ref(), )); } - let style = self.cascade_style( Some(&primary_results.rule_node), visited_style, parent_style, layout_parent_style, CascadeVisitedMode::Unvisited, - /* pseudo = */ None, + /* pseudo = */ pseudo.as_ref(), ); PrimaryStyle { style, } @@ -146,7 +146,7 @@ where /// Resolve the style of a given element, and all its eager pseudo-elements. pub fn resolve_style( &mut self, - parent_style: Option<&ComputedValuesInner>, + parent_style: Option<&ComputedValues>, layout_parent_style: Option<&ComputedValuesInner>, ) -> ElementStyles { use properties::longhands::display::computed_value::T as display; @@ -215,7 +215,7 @@ where fn cascade_style_and_visited( &mut self, inputs: CascadeInputs, - parent_style: Option<&ComputedValuesInner>, + parent_style: Option<&ComputedValues>, layout_parent_style: Option<&ComputedValuesInner>, pseudo: Option<&PseudoElement>, ) -> Arc<ComputedValues> { @@ -462,7 +462,7 @@ where &mut self, rules: Option<&StrongRuleNode>, style_if_visited: Option<Arc<ComputedValues>>, - mut parent_style: Option<&ComputedValuesInner>, + mut parent_style: Option<&ComputedValues>, layout_parent_style: Option<&ComputedValuesInner>, cascade_visited: CascadeVisitedMode, pseudo: Option<&PseudoElement>, @@ -485,12 +485,17 @@ where cascade_flags.insert(IS_ROOT_ELEMENT); } + #[cfg(feature = "gecko")] + let parent_style_context = parent_style; + #[cfg(feature = "servo")] + let parent_style_context = (); + let values = cascade( self.context.shared.stylist.device(), rules.unwrap_or(self.context.shared.stylist.rule_tree().root()), &self.context.shared.guards, - parent_style, + parent_style.map(|x| &**x), layout_parent_style, style_if_visited, Some(&mut cascade_info), @@ -500,6 +505,18 @@ where ); cascade_info.finish(&self.element.as_node()); - values.to_outer() + + // In case of NAC like ::placeholder we style it via + // cascade_primary without a PseudoElement, but + // the element itself is a pseudo, so try to use that + // when `pseudo` is unset + let pseudo_info = if let Some(pseudo) = pseudo { + Some(pseudo.pseudo_info()) + } else { + self.element.implemented_pseudo_element().map(|x| x.pseudo_info()) + }; + values.to_outer(self.context.shared.stylist.device(), + parent_style_context, + pseudo_info) } } diff --git a/components/style/stylist.rs b/components/style/stylist.rs index b4dad68f699..ac57c187b27 100644 --- a/components/style/stylist.rs +++ b/components/style/stylist.rs @@ -17,7 +17,7 @@ use invalidation::element::invalidation_map::InvalidationMap; use invalidation::media_queries::{EffectiveMediaQueryResults, ToMediaListKey}; use media_queries::Device; use properties::{self, CascadeFlags, ComputedValues, ComputedValuesInner}; -use properties::{AnimationRules, PropertyDeclarationBlock}; +use properties::{AnimationRules, PropertyDeclarationBlock, PseudoInfo, ParentStyleContextInfo}; #[cfg(feature = "servo")] use properties::INHERIT_ALL; use rule_tree::{CascadeLevel, RuleTree, StyleSource}; @@ -601,7 +601,9 @@ impl Stylist { pseudo: &PseudoElement, parent: Option<&ComputedValuesInner>, cascade_flags: CascadeFlags, - font_metrics: &FontMetricsProvider) + font_metrics: &FontMetricsProvider, + pseudo_info: PseudoInfo, + parent_style_context: ParentStyleContextInfo) -> Arc<ComputedValues> { debug_assert!(pseudo.is_precomputed()); @@ -638,7 +640,8 @@ impl Stylist { None, font_metrics, cascade_flags, - self.quirks_mode).to_outer() + self.quirks_mode).to_outer(self.device(), parent_style_context, + Some(pseudo_info)) } /// Returns the style for an anonymous box of the given type. @@ -675,7 +678,7 @@ impl Stylist { cascade_flags.insert(INHERIT_ALL); } self.precomputed_values_for_pseudo(guards, &pseudo, Some(parent_style), cascade_flags, - &ServoMetricsProvider) + &ServoMetricsProvider, (), ()) } /// Computes a pseudo-element style lazily during layout. @@ -692,7 +695,9 @@ impl Stylist { rule_inclusion: RuleInclusion, parent_style: &ComputedValuesInner, is_probe: bool, - font_metrics: &FontMetricsProvider) + font_metrics: &FontMetricsProvider, + pseudo_info: PseudoInfo, + parent_style_context: ParentStyleContextInfo) -> Option<Arc<ComputedValues>> where E: TElement, { @@ -701,7 +706,9 @@ impl Stylist { self.compute_pseudo_element_style_with_inputs(&cascade_inputs, guards, parent_style, - font_metrics) + font_metrics, + pseudo_info, + parent_style_context) } /// Computes a pseudo-element style lazily using the given CascadeInputs. @@ -712,7 +719,9 @@ impl Stylist { inputs: &CascadeInputs, guards: &StylesheetGuards, parent_style: &ComputedValuesInner, - font_metrics: &FontMetricsProvider) + font_metrics: &FontMetricsProvider, + pseudo_info: PseudoInfo, + parent_style_context: ParentStyleContextInfo) -> Option<Arc<ComputedValues>> { // We may have only visited rules in cases when we are actually @@ -734,7 +743,7 @@ impl Stylist { // We want to use the visited bits (if any) from our parent style as // our parent. let inherited_style = - parent_style.get_visited_style().unwrap_or(parent_style); + parent_style.get_visited_style().map(|x| &**x).unwrap_or(parent_style); // FIXME(emilio): The lack of layout_parent_style here could be // worrying, but we're probably dropping the display fixup for @@ -751,7 +760,8 @@ impl Stylist { None, font_metrics, CascadeFlags::empty(), - self.quirks_mode).to_outer(); + self.quirks_mode).to_outer(self.device(), parent_style_context, + Some(pseudo_info.clone())); Some(computed) } else { @@ -775,7 +785,9 @@ impl Stylist { None, font_metrics, CascadeFlags::empty(), - self.quirks_mode).to_outer()) + self.quirks_mode).to_outer(self.device(), + parent_style_context, + Some(pseudo_info))) } /// Computes the cascade inputs for a lazily-cascaded pseudo-element. @@ -1313,7 +1325,8 @@ impl Stylist { pub fn compute_for_declarations(&self, guards: &StylesheetGuards, parent_style: &ComputedValuesInner, - declarations: Arc<Locked<PropertyDeclarationBlock>>) + declarations: Arc<Locked<PropertyDeclarationBlock>>, + parent_style_context: ParentStyleContextInfo) -> Arc<ComputedValues> { use font_metrics::get_metrics_provider_for_product; @@ -1337,7 +1350,7 @@ impl Stylist { None, &metrics, CascadeFlags::empty(), - self.quirks_mode).to_outer() + self.quirks_mode).to_outer(self.device(), parent_style_context, None) } /// Accessor for a shared reference to the device. diff --git a/components/style/traversal.rs b/components/style/traversal.rs index 2f7223ad717..b9475ce7565 100644 --- a/components/style/traversal.rs +++ b/components/style/traversal.rs @@ -484,7 +484,7 @@ where let primary_style = StyleResolverForElement::new(*ancestor, context, rule_inclusion) .resolve_primary_style( - style.as_ref().map(|s| &***s), + style.as_ref().map(|s| &**s), layout_parent_style.as_ref().map(|s| &***s) ); @@ -501,7 +501,7 @@ where context.thread_local.bloom_filter.assert_complete(element); StyleResolverForElement::new(element, context, rule_inclusion) .resolve_style( - style.as_ref().map(|s| &***s), + style.as_ref().map(|s| &**s), layout_parent_style.as_ref().map(|s| &***s) ) } diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 05c03334f9b..02fff04b346 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -39,7 +39,7 @@ use style::gecko_bindings::bindings::{RawServoNamespaceRule, RawServoNamespaceRu use style::gecko_bindings::bindings::{RawServoPageRule, RawServoPageRuleBorrowed}; use style::gecko_bindings::bindings::{RawServoStyleSetBorrowed, RawServoStyleSetOwned}; use style::gecko_bindings::bindings::{RawServoStyleSheetContentsBorrowed, ServoComputedValuesBorrowed}; -use style::gecko_bindings::bindings::{RawServoStyleSheetContentsStrong, ServoComputedValuesStrong}; +use style::gecko_bindings::bindings::{RawServoStyleSheetContentsStrong, ServoStyleContextBorrowed}; use style::gecko_bindings::bindings::{RawServoSupportsRule, RawServoSupportsRuleBorrowed}; use style::gecko_bindings::bindings::{ServoCssRulesBorrowed, ServoCssRulesStrong}; use style::gecko_bindings::bindings::{nsACString, nsAString, nsCSSPropertyIDSetBorrowedMut}; @@ -61,13 +61,14 @@ use style::gecko_bindings::bindings::RawServoAnimationValueMapBorrowedMut; use style::gecko_bindings::bindings::RawServoAnimationValueStrong; use style::gecko_bindings::bindings::RawServoStyleRuleBorrowed; use style::gecko_bindings::bindings::ServoComputedValuesBorrowedOrNull; +use style::gecko_bindings::bindings::ServoStyleContextBorrowedOrNull; use style::gecko_bindings::bindings::nsTArrayBorrowed_uintptr_t; use style::gecko_bindings::bindings::nsTimingFunctionBorrowed; use style::gecko_bindings::bindings::nsTimingFunctionBorrowedMut; use style::gecko_bindings::structs; use style::gecko_bindings::structs::{CSSPseudoElementType, CompositeOperation, Loader}; -use style::gecko_bindings::structs::{RawServoStyleRule, ServoStyleSheet}; -use style::gecko_bindings::structs::{SheetParsingMode, nsIAtom, nsCSSPropertyID}; +use style::gecko_bindings::structs::{RawServoStyleRule, ServoStyleContextStrong}; +use style::gecko_bindings::structs::{ServoStyleSheet, SheetParsingMode, nsIAtom, nsCSSPropertyID}; use style::gecko_bindings::structs::{nsCSSFontFaceRule, nsCSSCounterStyleRule}; use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint, PropertyValuePair}; use style::gecko_bindings::structs::IterationCompositeOperation; @@ -92,7 +93,7 @@ use style::parallel; use style::parser::ParserContext; use style::properties::{ComputedValues, ComputedValuesInner, Importance, SourcePropertyDeclaration}; use style::properties::{LonghandIdSet, PropertyDeclaration, PropertyDeclarationBlock, PropertyId, StyleBuilder}; -use style::properties::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP; +use style::properties::{SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP, PseudoInfo, ParentStyleContextInfo}; use style::properties::animated_properties::{Animatable, AnimatableLonghand, AnimationValue}; use style::properties::parse_one_declaration_into; use style::rule_tree::StyleSource; @@ -655,10 +656,10 @@ pub extern "C" fn Servo_AnimationValue_Uncompute(value: RawServoAnimationValueBo #[no_mangle] pub extern "C" fn Servo_StyleSet_GetBaseComputedValuesForElement(raw_data: RawServoStyleSetBorrowed, element: RawGeckoElementBorrowed, - computed_values: ServoComputedValuesBorrowed, + computed_values: ServoStyleContextBorrowed, snapshots: *const ServoElementSnapshotTable, pseudo_type: CSSPseudoElementType) - -> ServoComputedValuesStrong + -> ServoStyleContextStrong { use style::style_resolver::StyleResolverForElement; @@ -731,7 +732,6 @@ pub extern "C" fn Servo_ComputedValues_ExtractAnimationValue(computed_values: Se None => { return Strong::null(); } }; - let computed_values = ComputedValues::as_arc(&computed_values); Arc::new(AnimationValue::from_computed_values(&property, computed_values)).into_strong() } @@ -1501,10 +1501,11 @@ pub extern "C" fn Servo_DocumentRule_GetConditionText(rule: RawServoDocumentRule } #[no_mangle] -pub extern "C" fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null: ServoComputedValuesBorrowedOrNull, +pub extern "C" fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null: ServoStyleContextBorrowedOrNull, + pseudo_type: CSSPseudoElementType, pseudo_tag: *mut nsIAtom, raw_data: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong { + -> ServoStyleContextStrong { let global_style_data = &*GLOBAL_STYLE_DATA; let guard = global_style_data.shared_lock.read(); let guards = StylesheetGuards::same(&guard); @@ -1513,23 +1514,24 @@ pub extern "C" fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null: let pseudo = PseudoElement::from_anon_box_atom(&atom) .expect("Not an anon box pseudo?"); - - let maybe_parent = ComputedValues::arc_from_borrowed(&parent_style_or_null) - .map(|p| &p.inner); let cascade_flags = SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP; let metrics = get_metrics_provider_for_product(); - data.stylist.precomputed_values_for_pseudo(&guards, &pseudo, maybe_parent, - cascade_flags, &metrics) + data.stylist.precomputed_values_for_pseudo(&guards, &pseudo, parent_style_or_null.map(|x| &**x), + cascade_flags, &metrics, + (pseudo_tag, pseudo_type), + parent_style_or_null) .into_strong() } #[no_mangle] pub extern "C" fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed, pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom, is_probe: bool, inherited_style: ServoComputedValuesBorrowedOrNull, + parent_style_context: ServoStyleContextBorrowedOrNull, raw_data: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong + -> ServoStyleContextStrong { let element = GeckoElement(element); let data = unsafe { element.ensure_data() }; @@ -1544,7 +1546,9 @@ pub extern "C" fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed, return if is_probe { Strong::null() } else { - doc_data.default_computed_values().clone().to_outer().into_strong() + doc_data.default_computed_values() + .clone().to_outer(doc_data.stylist.device(), parent_style_context, + Some((pseudo_tag, pseudo_type))).into_strong() }; } @@ -1559,9 +1563,11 @@ pub extern "C" fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed, &pseudo, RuleInclusion::All, &data.styles, - ComputedValues::arc_from_borrowed(&inherited_style).map(|x| &***x), + inherited_style, &*doc_data, - is_probe + is_probe, + (pseudo_tag, pseudo_type), + parent_style_context ); match style { @@ -1575,7 +1581,7 @@ pub extern "C" fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed, #[no_mangle] pub extern "C" fn Servo_SetExplicitStyle(element: RawGeckoElementBorrowed, - style: ServoComputedValuesBorrowed) + style: ServoStyleContextBorrowed) { let element = GeckoElement(element); let style = ComputedValues::as_arc(&style); @@ -1616,6 +1622,8 @@ fn get_pseudo_style( inherited_styles: Option<&ComputedValuesInner>, doc_data: &PerDocumentStyleDataImpl, is_probe: bool, + pseudo_info: PseudoInfo, + parent_style_context: ParentStyleContextInfo, ) -> Option<Arc<ComputedValues>> { let style = match pseudo.cascade_type() { PseudoElementCascadeType::Eager => { @@ -1637,7 +1645,9 @@ fn get_pseudo_style( &inputs, &guards, inherited_styles, - &metrics) + &metrics, + pseudo_info.clone(), + parent_style_context) }) }, _ => { @@ -1668,7 +1678,9 @@ fn get_pseudo_style( rule_inclusion, base, is_probe, - &metrics) + &metrics, + pseudo_info.clone(), + parent_style_context) }, }; @@ -1680,21 +1692,23 @@ fn get_pseudo_style( StyleBuilder::for_inheritance( styles.primary(), doc_data.default_computed_values(), - ).build().to_outer() + ).build().to_outer(doc_data.stylist.device(), parent_style_context, + Some(pseudo_info)) })) } #[no_mangle] pub extern "C" fn Servo_ComputedValues_Inherit( raw_data: RawServoStyleSetBorrowed, - parent_style: ServoComputedValuesBorrowedOrNull, + pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom, + parent_style_context: ServoStyleContextBorrowedOrNull, target: structs::InheritTarget -) -> ServoComputedValuesStrong { +) -> ServoStyleContextStrong { let data = PerDocumentStyleData::from_ffi(raw_data).borrow(); - let maybe_arc = ComputedValues::arc_from_borrowed(&parent_style); let for_text = target == structs::InheritTarget::Text; - let style = if let Some(reference) = maybe_arc.as_ref() { + let style = if let Some(reference) = parent_style_context { let mut style = StyleBuilder::for_inheritance(reference, &data.default_computed_values()); @@ -1709,22 +1723,42 @@ pub extern "C" fn Servo_ComputedValues_Inherit( data.default_computed_values().clone() }; - style.to_outer().into_strong() + let pseudo_info = if pseudo_tag.is_null() { + None + } else { + Some((pseudo_tag, pseudo_type)) + }; + + style.to_outer(data.stylist.device(), parent_style_context, pseudo_info).into_strong() } #[no_mangle] pub extern "C" fn Servo_ComputedValues_GetVisitedStyle(values: ServoComputedValuesBorrowed) - -> ServoComputedValuesStrong { - match ComputedValues::as_arc(&values).clone_visited_style() { + -> ServoStyleContextStrong { + match ComputedValuesInner::as_arc(&values).clone_visited_style() { Some(v) => v.into_strong(), None => Strong::null(), } } #[no_mangle] +pub extern "C" fn Servo_StyleContext_NewContext(values: ServoComputedValuesBorrowed, + parent: ServoStyleContextBorrowedOrNull, + pres_context: bindings::RawGeckoPresContextBorrowed, + pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom) + -> ServoStyleContextStrong { + let arc = ComputedValuesInner::as_arc(&values); + unsafe { + ComputedValuesInner::to_outer_from_arc(arc.clone_arc(), pres_context, parent, + pseudo_type, pseudo_tag).into_strong() + } +} + +#[no_mangle] pub extern "C" fn Servo_ComputedValues_GetStyleBits(values: ServoComputedValuesBorrowed) -> u64 { use style::properties::computed_value_flags::*; - let flags = ComputedValues::as_arc(&values).flags; + let flags = values.flags; let mut result = 0; if flags.contains(HAS_TEXT_DECORATION_LINES) { result |= structs::NS_STYLE_HAS_TEXT_DECORATION_LINES as u64; @@ -1738,7 +1772,6 @@ pub extern "C" fn Servo_ComputedValues_GetStyleBits(values: ServoComputedValuesB #[no_mangle] pub extern "C" fn Servo_ComputedValues_SpecifiesAnimationsOrTransitions(values: ServoComputedValuesBorrowed) -> bool { - let values = ComputedValues::as_arc(&values); let b = values.get_box(); b.specifies_animations() || b.specifies_transitions() } @@ -1748,15 +1781,12 @@ pub extern "C" fn Servo_ComputedValues_EqualCustomProperties( first: ServoComputedValuesBorrowed, second: ServoComputedValuesBorrowed ) -> bool { - let first = ComputedValues::as_arc(&first); - let second = ComputedValues::as_arc(&second); first.get_custom_properties() == second.get_custom_properties() } #[no_mangle] pub extern "C" fn Servo_ComputedValues_GetStyleRuleList(values: ServoComputedValuesBorrowed, rules: RawGeckoServoStyleRuleListBorrowedMut) { - let values = ComputedValues::as_arc(&values); if let Some(ref rule_node) = values.rules { let mut result = vec![]; for node in rule_node.self_and_ancestors() { @@ -2775,7 +2805,7 @@ pub extern "C" fn Servo_TakeChangeHint(element: RawGeckoElementBorrowed, #[no_mangle] pub extern "C" fn Servo_ResolveStyle(element: RawGeckoElementBorrowed, _raw_data: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong + -> ServoStyleContextStrong { let element = GeckoElement(element); debug!("Servo_ResolveStyle: {:?}", element); @@ -2792,10 +2822,12 @@ pub extern "C" fn Servo_ResolveStyle(element: RawGeckoElementBorrowed, #[no_mangle] pub extern "C" fn Servo_ResolveStyleLazily(element: RawGeckoElementBorrowed, pseudo_type: CSSPseudoElementType, + pseudo_tag: *mut nsIAtom, + parent_style_context: ServoStyleContextBorrowedOrNull, rule_inclusion: StyleRuleInclusion, snapshots: *const ServoElementSnapshotTable, raw_data: RawServoStyleSetBorrowed) - -> ServoComputedValuesStrong + -> ServoStyleContextStrong { debug_assert!(!snapshots.is_null()); let global_style_data = &*GLOBAL_STYLE_DATA; @@ -2816,6 +2848,8 @@ pub extern "C" fn Servo_ResolveStyleLazily(element: RawGeckoElementBorrowed, /* inherited_styles = */ None, &*data, /* is_probe = */ false, + (pseudo_tag, pseudo_type), + parent_style_context ).expect("We're not probing, so we should always get a style \ back") } @@ -2869,11 +2903,11 @@ fn simulate_compute_values_failure(_: &PropertyValuePair) -> bool { fn create_context<'a>(per_doc_data: &'a PerDocumentStyleDataImpl, font_metrics_provider: &'a FontMetricsProvider, - style: &'a ComputedValues, - parent_style: &'a Option<&Arc<ComputedValues>>) + style: &'a ComputedValuesInner, + parent_style: &'a Option<&ComputedValuesInner>) -> Context<'a> { let default_values = per_doc_data.default_computed_values(); - let inherited_style = parent_style.map(|x| &x.inner).unwrap_or(default_values); + let inherited_style = parent_style.unwrap_or(default_values); Context { is_root_element: false, @@ -2900,12 +2934,11 @@ pub extern "C" fn Servo_GetComputedKeyframeValues(keyframes: RawGeckoKeyframeLis let data = PerDocumentStyleData::from_ffi(raw_data).borrow(); let metrics = get_metrics_provider_for_product(); - let style = ComputedValues::as_arc(&style); let element = GeckoElement(element); let parent_element = element.inheritance_parent(); let parent_data = parent_element.as_ref().and_then(|e| e.borrow_data()); - let parent_style = parent_data.as_ref().map(|d| d.styles.primary()); + let parent_style = parent_data.as_ref().map(|d| d.styles.primary()).map(|x| &***x); let mut context = create_context(&data, &metrics, style, &parent_style); @@ -2980,13 +3013,12 @@ pub extern "C" fn Servo_GetAnimationValues(declarations: RawServoDeclarationBloc raw_data: RawServoStyleSetBorrowed, animation_values: RawGeckoServoAnimationValueListBorrowedMut) { let data = PerDocumentStyleData::from_ffi(raw_data).borrow(); - let style = ComputedValues::as_arc(&style); let metrics = get_metrics_provider_for_product(); let element = GeckoElement(element); let parent_element = element.inheritance_parent(); let parent_data = parent_element.as_ref().and_then(|e| e.borrow_data()); - let parent_style = parent_data.as_ref().map(|d| d.styles.primary()); + let parent_style = parent_data.as_ref().map(|d| d.styles.primary()).map(|x| &***x); let mut context = create_context(&data, &metrics, style, &parent_style); @@ -3009,13 +3041,12 @@ pub extern "C" fn Servo_AnimationValue_Compute(element: RawGeckoElementBorrowed, raw_data: RawServoStyleSetBorrowed) -> RawServoAnimationValueStrong { let data = PerDocumentStyleData::from_ffi(raw_data).borrow(); - let style = ComputedValues::as_arc(&style); let metrics = get_metrics_provider_for_product(); let element = GeckoElement(element); let parent_element = element.inheritance_parent(); let parent_data = parent_element.as_ref().and_then(|e| e.borrow_data()); - let parent_style = parent_data.as_ref().map(|d| d.styles.primary()); + let parent_style = parent_data.as_ref().map(|d| d.styles.primary()).map(|x| &***x); let mut context = create_context(&data, &metrics, style, &parent_style); @@ -3259,16 +3290,16 @@ pub extern "C" fn Servo_StyleSet_GetCounterStyleRule(raw_data: RawServoStyleSetB #[no_mangle] pub extern "C" fn Servo_StyleSet_ResolveForDeclarations( raw_data: RawServoStyleSetBorrowed, - parent_style_or_null: ServoComputedValuesBorrowedOrNull, - declarations: RawServoDeclarationBlockBorrowed -) -> ServoComputedValuesStrong { + parent_style_context: ServoStyleContextBorrowedOrNull, + declarations: RawServoDeclarationBlockBorrowed, +) -> ServoStyleContextStrong { let doc_data = PerDocumentStyleData::from_ffi(raw_data).borrow(); let global_style_data = &*GLOBAL_STYLE_DATA; let guard = global_style_data.shared_lock.read(); let guards = StylesheetGuards::same(&guard); - let parent_style = match ComputedValues::arc_from_borrowed(&parent_style_or_null) { - Some(parent) => &parent.inner, + let parent_style = match parent_style_context { + Some(parent) => &**parent, None => doc_data.default_computed_values(), }; @@ -3276,7 +3307,8 @@ pub extern "C" fn Servo_StyleSet_ResolveForDeclarations( doc_data.stylist.compute_for_declarations(&guards, parent_style, - declarations.clone_arc()).into_strong() + declarations.clone_arc(), + parent_style_context).into_strong() } #[no_mangle] @@ -3336,7 +3368,8 @@ pub extern "C" fn Servo_StyleSet_HasStateDependency( pub extern "C" fn Servo_GetCustomPropertyValue(computed_values: ServoComputedValuesBorrowed, name: *const nsAString, value: *mut nsAString) -> bool { - let custom_properties = match ComputedValues::as_arc(&computed_values).custom_properties() { + + let custom_properties = match computed_values.custom_properties() { Some(p) => p, None => return false, }; @@ -3353,7 +3386,7 @@ pub extern "C" fn Servo_GetCustomPropertyValue(computed_values: ServoComputedVal #[no_mangle] pub extern "C" fn Servo_GetCustomPropertiesCount(computed_values: ServoComputedValuesBorrowed) -> u32 { - match ComputedValues::as_arc(&computed_values).custom_properties() { + match ComputedValuesInner::as_arc(&computed_values).custom_properties() { Some(p) => p.len() as u32, None => 0, } @@ -3363,7 +3396,7 @@ pub extern "C" fn Servo_GetCustomPropertiesCount(computed_values: ServoComputedV pub extern "C" fn Servo_GetCustomPropertyNameAt(computed_values: ServoComputedValuesBorrowed, index: u32, name: *mut nsAString) -> bool { - let custom_properties = match ComputedValues::as_arc(&computed_values).custom_properties() { + let custom_properties = match ComputedValuesInner::as_arc(&computed_values).custom_properties() { Some(p) => p, None => return false, }; |