diff options
Diffstat (limited to '')
-rw-r--r-- | layout/style/ServoBindings.toml | 672 |
1 files changed, 672 insertions, 0 deletions
diff --git a/layout/style/ServoBindings.toml b/layout/style/ServoBindings.toml new file mode 100644 index 0000000000..5ec116f642 --- /dev/null +++ b/layout/style/ServoBindings.toml @@ -0,0 +1,672 @@ +[structs] +headers = [ + "nsStyleStruct.h", + "mozilla/StyleAnimationValue.h", + "gfxFontConstants.h", + "gfxFontFeatures.h", + "COLRFonts.h", + "nsStyleConsts.h", + "mozilla/css/Loader.h", + "mozilla/css/SheetLoadData.h", + "mozilla/DeclarationBlock.h", + "mozilla/dom/AnimationEffectBinding.h", + "mozilla/dom/HTMLSlotElement.h", + "mozilla/dom/KeyframeEffectBinding.h", + "mozilla/dom/MediaList.h", + "mozilla/dom/ScreenBinding.h", + "mozilla/dom/ShadowRoot.h", + "mozilla/dom/SVGPathSegBinding.h", + "mozilla/ipc/ByteBuf.h", + "mozilla/AnimationPropertySegment.h", + "mozilla/ComputedTiming.h", + "mozilla/CORSMode.h", + "mozilla/Keyframe.h", + "mozilla/ServoElementSnapshot.h", + "mozilla/ServoElementSnapshotTable.h", + "mozilla/dom/Element.h", + "mozilla/dom/ChildIterator.h", + "mozilla/dom/NameSpaceConstants.h", + "mozilla/LookAndFeel.h", + "mozilla/GeckoBindings.h", + "mozilla/ServoBindings.h", + "mozilla/ComputedStyle.h", + "mozilla/PresShell.h", + "mozilla/ServoTraversalStatistics.h", + "mozilla/SizeOfState.h", + "nsCSSProps.h", + "nsMappedAttributes.h", + "nsNameSpaceManager.h", +] +raw-lines = [ + # FIXME(emilio): Incrementally remove these "pub use"s. Probably + # mozilla::css and mozilla::dom are easier. + "#[allow(unknown_lints, ambiguous_glob_reexports)]", + "pub use self::root::*;", + "pub use self::root::mozilla::*;", + "pub use self::root::mozilla::css::*;", + "pub use self::root::mozilla::dom::*;", +] +hide-types = [ + ".*char_traits", + ".*incompatible_char_type", + ".*string_view", + # https://github.com/rust-lang/rust-bindgen/issues/1503 + "mozilla::StyleTimingFunction.*", + # https://github.com/rust-lang/rust-bindgen/issues/1559 + "mozilla::StyleGeneric.*", + ".*ErrorResult.*", +] +bitfield-enums = [ + "nsChangeHint", + "mozilla::OriginFlags", +] +rusty-enums = [ + "nsCompatibility", + "mozilla::EffectCompositor_CascadeLevel", + "mozilla::SheetType", + "mozilla::dom::CallerType", + "mozilla::dom::IterationCompositeOperation", + "mozilla::dom::CompositeOperation", + "mozilla::dom::CompositeOperationOrAuto", + "mozilla::InheritTarget", + "mozilla::css::DocumentMatchingFunction", + "mozilla::css::SheetParsingMode", + "nsStyleSVGOpacitySource", + "mozilla::dom::Document_DocumentTheme", + "mozilla::dom::Document_Type", + "mozilla::LookAndFeel_IntID", + "mozilla::LookAndFeel_FloatID", + "nsCSSUnit", + "nsCSSFontDesc", + "nsCSSPropertyID", + "nsCSSCounterDesc", + "nsresult", + "nsAtom_AtomKind", + "nsStyleImageLayers_LayerType", + "mozilla::ServoElementSnapshotFlags", + "mozilla::Side", + "mozilla::dom::PlaybackDirection", + "mozilla::dom::FillMode", + "mozilla::dom::ScreenColorGamut", + "mozilla::HalfCorner", + "mozilla::StyleFloatEdge", + "mozilla::StyleShapeRadius", + "mozilla::StyleWindowDragging", + "mozilla::StyleAnimationPlayState", + "mozilla::StyleOrient", + "mozilla::StyleBoxSizing", + "mozilla::StyleClear", + "mozilla::StyleColumnFill", + "mozilla::StyleColumnSpan", + "mozilla::StyleDirection", + "mozilla::StyleFloat", + "mozilla::StyleImageOrientation", + "mozilla::StyleInert", + "mozilla::StyleUserModify", + "mozilla::StyleUserInput", + "mozilla::StyleBoxDirection", + "mozilla::StyleRubyAlign", + "mozilla::StyleTextSecurity", + "mozilla::StyleTextSizeAdjust", + "mozilla::StyleHyphens", + "mozilla::StyleRubyPosition", + "mozilla::StyleShapeSourceType", + "mozilla::StyleVisibility", + "mozilla::StyleBasicShapeType", + "mozilla::StyleMathStyle", + "nsStyleImageLayers_Size_DimensionType", + "mozilla::StyleBorderCollapse", + "mozilla::StyleBorderImageRepeat", + "mozilla::StyleBoxPack", + "mozilla::StyleWindowShadow", + "mozilla::StyleDominantBaseline", + "mozilla::StyleBoxOrient", + "mozilla::StyleBoxAlign", + "mozilla::StyleUserFocus", + "mozilla::StyleUserSelect", + "mozilla::StyleImageLayerRepeat", + "mozilla::StyleImageLayerAttachment", + "mozilla::StylePositionProperty", + "mozilla::StyleBoxDecorationBreak", + "mozilla::StyleBorderStyle", + "mozilla::StyleRuleInclusion", + "mozilla::StyleGridTrackBreadth", + "mozilla::StyleOverscrollBehavior", + "mozilla::StyleImeMode", + "mozilla::StyleOverflowAnchor", + "mozilla::StyleListStylePosition", + "mozilla::StylePointerEvents", + "mozilla::StyleScrollbarWidth", + "mozilla::StyleWhiteSpace", + "mozilla::StyleTextRendering", + "mozilla::StyleFlexDirection", + "mozilla::StyleStrokeLinecap", + "mozilla::StyleStrokeLinejoin", + "mozilla::StyleFlexWrap", + "mozilla::StyleMathVariant", + "mozilla::StyleTextDecorationSkipInk", + "mozilla::StyleTextDecorationLength", + "mozilla::StyleMaskType", + "mozilla::StyleShapeRendering", + "mozilla::StyleTextAnchor", + "mozilla::StyleObjectFit", + "mozilla::StyleTextDecorationStyle", + "mozilla::StyleTopLayer", + "mozilla::StyleIsolation", + "mozilla::StyleTextOrientation", + "mozilla::StyleMozBoxCollapse", + "mozilla::StyleMozBoxLayout", + "mozilla::StyleTextCombineUpright", + "mozilla::StyleUnicodeBidi", + "mozilla::StyleTableLayout", + "mozilla::StyleEmptyCells", + "nsStyleImageType", + "nsINode_BooleanFlag", + "mozilla::PseudoStyleType", + "mozilla::LookAndFeel_ColorID", + "mozilla::LookAndFeel_FontID", + "nsStyleTransformMatrix::MatrixTransformOperator", + "mozilla::StyleGeometryBox", + "mozilla::SystemColor", + "mozilla::StyleMaskMode", + "mozilla::StyleScrollBehavior", + "mozilla::StyleColorInterpolation", + "mozilla::StyleVectorEffect", + "mozilla::StyleBackfaceVisibility", + "mozilla::StyleBlend", + "mozilla::StyleMaskComposite", + "mozilla::StyleWritingModeProperty", + "StyleFontVariantEmoji", +] +allowlist-vars = [ + "NS_ATTRVALUE_.*", + "NODE_.*", + "ELEMENT_.*", + "NS_FONT_.*", + "NS_STYLE_.*", + "NS_MATHML_.*", + "NS_RADIUS_.*", + "BORDER_COLOR_.*", + "BORDER_STYLE_.*", + "CSS_PSEUDO_ELEMENT_.*", + "SERVO_CSS_PSEUDO_ELEMENT_FLAGS_.*", + "kNameSpaceID_.*", + "kGenericFont_.*", + "kPresContext_.*", + "nsNameSpaceManager_.*", + "GECKO_IS_NIGHTLY", + "NS_SAME_AS_FOREGROUND_COLOR", + "mozilla::detail::gGkAtoms", + "mozilla::detail::kGkAtomsArrayOffset", + "mozilla::dom::SVGPathSeg_Binding::PATHSEG_.*", +] +# TODO(emilio): A bunch of types here can go away once we generate bindings and +# structs together. +allowlist-types = [ + "ServoCssRules", + "nsFontFaceRuleContainer", + "Matrix4x4Components", + "mozilla::ComputedKeyframeValues", + "mozilla::Keyframe", + "mozilla::PropertyValuePair", + "mozilla::DeclarationBlockMutationClosure", + "mozilla::AnimationPropertySegment", + "mozilla::AnonymousCounterStyle", + "mozilla::AtomArray", + "mozilla::ComputedTiming", + "mozilla::Matrix4x4Components", + "mozilla::PreferenceSheet", + "mozilla::SeenPtrs", + "mozilla::ServoElementSnapshot.*", + "mozilla::ComputedStyle", + "mozilla::StyleSheet", + "mozilla::ServoStyleSheetInner", + "mozilla::ServoStyleSetSizes", + "mozilla::ServoTraversalStatistics", + "mozilla::css::LoaderReusableStyleSheets", + "mozilla::css::SheetLoadData", + "mozilla::css::SheetLoadDataHolder", + "mozilla::css::SheetParsingMode", + "mozilla::css::DocumentMatchingFunction", + "mozilla::dom::IterationCompositeOperation", + "mozilla::dom::StyleChildrenIterator", + "mozilla::HalfCorner", + "mozilla::ipc::ByteBuf", + "mozilla::MallocSizeOf", + "mozilla::OriginFlags", + "mozilla::PropertyStyleAnimationValuePair", + "mozilla::ServoTraversalFlags", + "mozilla::StyleShapeRadius", + "mozilla::StyleGrid.*", + "mozilla::UpdateAnimationsTasks", + "mozilla::PointerCapabilities", + "mozilla::LookAndFeel", + "mozilla::gfx::Float", + "mozilla::gfx::FontVariation", + "mozilla::gfx::FontPaletteValueSet", + "mozilla::gfx::FontPaletteValueSet::PaletteValeus", + "mozilla::StyleImageLayerAttachment", + "gfxFontFeature", + "gfxFontVariation", + ".*ThreadSafe.*Holder", + "AnonymousContent", + "AudioContext", + "DefaultDelete", + "DOMIntersectionObserverEntry", + "Element", + "mozilla::FontSizePrefs", + "FragmentOrURL", + "FrameRequestCallback", + "GeckoParserExtraData", + "GeckoFontMetrics", + "gfxFontFeatureValueSet", + "GridNamedArea", + "mozilla::HalfCorner", + "Image", + "ImageURL", + "Keyframe", + "mozilla::MediumFeaturesChangedResult", + "nsAttrName", + "nsAttrValue", + "MiscContainer", + "nscolor", + "nsChangeHint", + "nsCSSCounterDesc", + "nsCSSFontDesc", + "nsCSSKTableEntry", + "nsCSSPropertyID", + "nsCSSPropertyIDSet", + "nsCSSProps", + "nsCSSShadowArray", + "nsCSSValue", + "nsCSSValueList", + "nsCSSValueList_heap", + "nsCSSValuePair_heap", + "nsCSSValuePairList", + "nsCSSValuePairList_heap", + "nsCSSValueTriplet_heap", + "nsCursorImage", + "nsFont", + "nsAtom", + "nsDynamicAtom", + "nsMargin", + "nsRect", + "nsresult", + "nsSimpleContentList", + "nsSize", + "nsStyleBackground", + "nsStyleBorder", + "nsStyleColor", + "nsStyleColumn", + "nsStyleContent", + "nsStyleContentData", + "ComputedStyle", + "nsStyleCounterData", + "nsStyleDisplay", + "nsStyleEffects", + "nsStyleFilter", + "nsStyleFont", + "nsStyleGradient", + "nsStyleGridTemplate", + "nsStyleImage", + "nsStyleImageLayers", + "nsStyleList", + "nsStyleMargin", + "nsStyleOutline", + "nsStylePadding", + "nsStylePage", + "nsStylePosition", + "nsStyleSides", + "nsStyleSVG", + "nsStyleSVGOpacitySource", + "nsStyleSVGReset", + "nsStyleTable", + "nsStyleTableBorder", + "nsStyleText", + "nsStyleTextReset", + "nsStyleUIReset", + "nsStyleUnion", + "nsStyleUI", + "nsStyleVisibility", + "nsStyleXUL", + "nsTArrayHeader", + "Position", + "PropertyValuePair", + "Runnable", + "ServoAttrSnapshot", + "ServoComputedData", + "ServoComputedDataBorrowed", + "ServoElementSnapshot", + "ComputedStyleStrong", + "ComputedStyleBorrowed", + "ComputedStyleBorrowedOrNull", + "SheetParsingMode", + "StaticRefPtr", + "StyleAnimation", + "StyleBasicShapeType", + "StyleGeometryBox", + "StyleShapeSource", + "StyleTransition", + "ThemeWidgetType", + "mozilla::UniquePtr", + "mozilla::DeclarationBlock", + "mozilla::DefaultDelete", + "mozilla::Side", + "mozilla::binding_danger::AssertAndSuppressCleanupPolicy", + "mozilla::ParsingMode", + "mozilla::InheritTarget", + "mozilla::dom::MediaList", + "mozilla::StyleRuleInclusion", + "nsStyleTransformMatrix::MatrixTransformOperator", +] +opaque-types = [ + "mozilla::StyleThinArc", # https://github.com/rust-lang/rust-bindgen/issues/1557 + "std::pair__PCCP", + "std::namespace::atomic___base", "std::atomic__My_base", + "std::atomic", + "std::atomic___base", + # We want everything but FontVariation and Float to be opaque but we don't + # have negative regexes. + "mozilla::gfx::(.{0,4}|.{6,12}|.{14,}|([^F][^o][^n][^t][^V][^a][^r][^i][^a][^t][^i][^o][^n])|([^F][^l][^o][^a][^t]))", + "mozilla::dom::Sequence", + "mozilla::SmallPointerArray", + "mozilla::dom::Optional", + "mozilla::dom::OwningNodeOrString_Value", + "mozilla::dom::Nullable", + "mozilla::external::AtomicRefCounted", + "RefPtr_Proxy", + "RefPtr_Proxy_member_function", + "nsAutoPtr_Proxy", + "nsAutoPtr_Proxy_member_function", + "mozilla::detail::HashTable", # <- We should be able to remove this and + # HashSet below once + # https://github.com/rust-lang/rust-bindgen/pull/1515 + # is available + "mozilla::detail::PointerType", + "mozilla::HashSet", + "mozilla::Pair", + "mozilla::Pair_Base", + "mozilla::ScrollAxis", # <- For some reason the alignment of this is 4 + # for clang. + "mozilla::SeenPtrs", + "mozilla::SupportsWeakPtr", + "std::tuple", + "std::tuple_.*", # Causes "Cannot find type _Pred in this scope" error on mac, like rust-skia#571 + "SupportsWeakPtr", + "mozilla::detail::WeakReference", + "mozilla::WeakPtr", + "nsWritingIterator_reference", "nsReadingIterator_reference", + "nsTObserverArray", # <- Inherits from nsAutoTObserverArray<T, 0> + "mozilla::DoublyLinkedList", + "mozilla::SafeDoublyLinkedList", + "nsTHashtable", # <- Inheriting from inner typedefs that clang + # doesn't expose properly. + "nsTBaseHashSet", # <- Ditto + "nsBaseHashtable", "nsRefCountedHashtable", "nsClassHashtable", # <- Ditto + "mozilla::dom::Document_SelectorCache", # <- Inherits from nsExpirationTracker<.., 4> + "nsPIDOMWindow", # <- Takes the vtable from a template parameter, and we can't + # generate it conditionally. + "JS::Rooted", + "mozilla::Maybe", + "mozilla::Variant", + "mozilla::dom::TreeOrderedArray", # AutoTArray<> + "gfxSize", # <- union { struct { T width; T height; }; T components[2] }; + "gfxSize_Super", # Ditto. + "StyleAnimationValue", # pulls in a whole bunch of stuff we don't need in the bindings + "mozilla::dom::.*Callback", # Pulls in ErrorResult and other things that + # don't align properly on Linux 32-bit + "mozilla::SchedulerGroup", # Non-standard-layout packing of field into superclass + "mozilla::Widget.*Event", # As above + "mozilla::detail::GkAtoms", # https://bugzilla.mozilla.org/show_bug.cgi?id=1517685 + "mozilla::detail::ThreadLocal.*", +] + +# All cbindgen-types are in mod "structs::root::mozilla". +# FIXME(emilio): We probably want to automate this somehow... +cbindgen-types = [ + { gecko = "StyleAnimationIterationCount", servo = "crate::values::computed::AnimationIterationCount" }, + { gecko = "StyleAnimationTimeline", servo = "crate::values::computed::AnimationTimeline" }, + { gecko = "StyleAppearance", servo = "crate::values::specified::Appearance" }, + { gecko = "StyleAspectRatio", servo = "crate::values::computed::position::AspectRatio" }, + { gecko = "StyleComputedFontStretchRange", servo = "crate::font_face::ComputedFontStretchRange" }, + { gecko = "StyleComputedFontStyleDescriptor", servo = "crate::font_face::ComputedFontStyleDescriptor" }, + { gecko = "StyleComputedFontWeightRange", servo = "crate::font_face::ComputedFontWeightRange" }, + { gecko = "StyleComputedTimingFunction", servo = "crate::values::computed::easing::TimingFunction" }, + { gecko = "StylePrefersContrast", servo = "crate::gecko::media_features::PrefersContrast" }, + { gecko = "StyleCursorKind", servo = "crate::values::computed::ui::CursorKind" }, + { gecko = "StyleDisplay", servo = "crate::values::specified::Display" }, + { gecko = "StyleDisplayMode", servo = "crate::gecko::media_features::DisplayMode" }, + { gecko = "StylePlatform", servo = "crate::gecko::media_features::Platform" }, + { gecko = "StylePrefersColorScheme", servo = "crate::gecko::media_features::PrefersColorScheme" }, + { gecko = "StyleScripting", servo = "crate::gecko::media_features::Scripting" }, + { gecko = "StyleDynamicRange", servo = "crate::gecko::media_features::DynamicRange" }, + { gecko = "StyleFillRule", servo = "crate::values::generics::basic_shape::FillRule" }, + { gecko = "StyleFontDisplay", servo = "crate::font_face::FontDisplay" }, + { gecko = "StyleFontFaceSourceListComponent", servo = "crate::font_face::FontFaceSourceListComponent" }, + { gecko = "StyleFontFaceSourceFormatKeyword", servo = "crate::font_face::FontFaceSourceFormatKeyword" }, + { gecko = "StyleFontFaceSourceTechFlags", servo = "crate::font_face::FontFaceSourceTechFlags" }, + { gecko = "StyleFontLanguageOverride", servo = "crate::values::computed::font::FontLanguageOverride" }, + { gecko = "StyleOffsetPath", servo = "crate::values::computed::motion::OffsetPath" }, + { gecko = "StyleGenericOffsetPath", servo = "crate::values::generics::motion::OffsetPath" }, + { gecko = "StyleOffsetPosition", servo = "crate::values::computed::motion::OffsetPosition" }, + { gecko = "StyleOffsetRotate", servo = "crate::values::computed::motion::OffsetRotate" }, + { gecko = "StylePathCommand", servo = "crate::values::specified::svg_path::PathCommand" }, + { gecko = "StyleRayFunction", servo = "crate::values::generics::motion::RayFunction" }, + { gecko = "StyleUnicodeRange", servo = "cssparser::UnicodeRange" }, + { gecko = "StyleOverflowWrap", servo = "crate::values::computed::OverflowWrap" }, + { gecko = "StyleWordBreak", servo = "crate::values::computed::WordBreak" }, + { gecko = "StyleTextJustify", servo = "crate::values::computed::TextJustify" }, + { gecko = "StyleMozControlCharacterVisibility", servo = "crate::values::computed::text::MozControlCharacterVisibility" }, + { gecko = "StyleLineBreak", servo = "crate::values::computed::LineBreak" }, + { gecko = "StyleLineClamp", servo = "crate::values::computed::LineClamp" }, + { gecko = "StyleUserSelect", servo = "crate::values::computed::UserSelect" }, + { gecko = "StyleBreakBetween", servo = "crate::values::computed::BreakBetween" }, + { gecko = "StyleBreakWithin", servo = "crate::values::computed::BreakWithin" }, + { gecko = "StyleBorderStyle", servo = "crate::values::computed::BorderStyle" }, + { gecko = "StyleOutlineStyle", servo = "crate::values::computed::OutlineStyle" }, + { gecko = "StyleScrollSnapAlign", servo = "crate::values::computed::ScrollSnapAlign" }, + { gecko = "StyleScrollSnapStop", servo = "crate::values::computed::ScrollSnapStop" }, + { gecko = "StyleScrollSnapStrictness", servo = "crate::values::computed::ScrollSnapStrictness" }, + { gecko = "StyleScrollSnapType", servo = "crate::values::computed::ScrollSnapType" }, + { gecko = "StyleAnimationName", servo = "crate::values::computed::AnimationName" }, + { gecko = "StyleScrollTimelineName", servo = "crate::values::computed::ScrollTimelineName" }, + { gecko = "StyleScrollAxis", servo = "crate::values::computed::ScrollAxis" }, + { gecko = "StyleViewTimelineInset", servo = "crate::values::computed::ViewTimelineInset" }, + { gecko = "StyleResize", servo = "crate::values::computed::Resize" }, + { gecko = "StyleOverflowClipBox", servo = "crate::values::computed::OverflowClipBox" }, + { gecko = "StyleFloat", servo = "crate::values::computed::Float" }, + { gecko = "StyleClear", servo = "crate::values::computed::Clear" }, + { gecko = "StyleOverscrollBehavior", servo = "crate::values::computed::OverscrollBehavior" }, + { gecko = "StyleTextAlign", servo = "crate::values::computed::TextAlign" }, + { gecko = "StyleTextAlignLast", servo = "crate::values::computed::text::TextAlignLast" }, + { gecko = "StyleTextOverflow", servo = "crate::values::computed::TextOverflow" }, + { gecko = "StyleOverflow", servo = "crate::values::computed::Overflow" }, + { gecko = "StyleOverflowAnchor", servo = "crate::values::computed::OverflowAnchor" }, + { gecko = "StyleTextDecorationSkipInk", servo = "crate::values::computed::TextDecorationSkipInk" }, + { gecko = "StyleTextDecorationLength", servo = "crate::values::computed::TextDecorationLength" }, + { gecko = "StyleRubyPosition", servo = "crate::values::computed::RubyPosition" }, + { gecko = "StyleLength", servo = "crate::values::computed::CSSPixelLength" }, + { gecko = "StyleLengthPercentage", servo = "crate::values::computed::LengthPercentage" }, + { gecko = "StyleNonNegativeLengthPercentage", servo = "crate::values::computed::NonNegativeLengthPercentage" }, + { gecko = "StyleGenericLengthPercentageOrAuto", servo = "crate::values::generics::length::LengthPercentageOrAuto" }, + { gecko = "StyleGenericLengthPercentageOrNormal", servo = "crate::values::generics::length::LengthPercentageOrNormal" }, + { gecko = "StyleLengthPercentageOrAuto", servo = "crate::values::computed::LengthPercentageOrAuto" }, + { gecko = "StyleNonNegativeLengthPercentageOrAuto", servo = "crate::values::computed::NonNegativeLengthPercentageOrAuto" }, + { gecko = "StyleRect", servo = "crate::values::generics::rect::Rect" }, + { gecko = "StyleIntersectionObserverRootMargin", servo = "crate::values::specified::gecko::IntersectionObserverRootMargin" }, + { gecko = "StyleGenericSize", servo = "crate::values::generics::length::Size" }, + { gecko = "StyleGenericMaxSize", servo = "crate::values::generics::length::MaxSize" }, + { gecko = "StyleGenericFlexBasis", servo = "crate::values::generics::flex::FlexBasis" }, + { gecko = "StyleSize", servo = "crate::values::computed::Size" }, + { gecko = "StyleMaxSize", servo = "crate::values::computed::MaxSize" }, + { gecko = "StyleFlexBasis", servo = "crate::values::computed::FlexBasis" }, + { gecko = "StylePosition", servo = "crate::values::computed::Position" }, + { gecko = "StylePositionOrAuto", servo = "crate::values::computed::PositionOrAuto" }, + { gecko = "StyleGenericPositionOrAuto", servo = "crate::values::generics::position::PositionOrAuto" }, + { gecko = "StyleBackgroundSize", servo = "crate::values::computed::BackgroundSize" }, + { gecko = "StyleGenericBackgroundSize", servo = "crate::values::generics::background::BackgroundSize" }, + { gecko = "StyleBorderImageSlice", servo = "crate::values::computed::BorderImageSlice" }, + { gecko = "StyleGenericLengthOrNumber", servo = "crate::values::generics::length::LengthOrNumber" }, + { gecko = "StyleCSSPixelLength", servo = "crate::values::computed::length::CSSPixelLength" }, + { gecko = "StyleNonNegativeLength", servo = "crate::values::computed::NonNegativeLength" }, + { gecko = "StyleNonNegativeNumber", servo = "crate::values::computed::NonNegativeNumber" }, + { gecko = "StyleZeroToOneNumber", servo = "crate::values::computed::ZeroToOneNumber" }, + { gecko = "StylePercentage", servo = "crate::values::computed::Percentage" }, + { gecko = "StylePerspective", servo = "crate::values::computed::Perspective" }, + { gecko = "StyleGenericPerspective", servo = "crate::values::generics::box_::Perspective" }, + { gecko = "StyleZIndex", servo = "crate::values::computed::ZIndex" }, + { gecko = "StyleGenericZIndex", servo = "crate::values::generics::position::ZIndex" }, + { gecko = "StyleTransformOrigin", servo = "crate::values::computed::TransformOrigin" }, + { gecko = "StyleTransformStyle", servo = "crate::values::computed::TransformStyle" }, + { gecko = "StyleGenericBorderRadius", servo = "crate::values::generics::border::BorderRadius" }, + { gecko = "StyleLetterSpacing", servo = "crate::values::computed::text::LetterSpacing" }, + { gecko = "StyleGenericLineHeight", servo = "crate::values::generics::text::LineHeight" }, + { gecko = "StyleCaretColor", servo = "crate::values::computed::color::CaretColor" }, + { gecko = "StyleContain", servo = "crate::values::computed::Contain" }, + { gecko = "StyleContainerType", servo = "crate::values::computed::ContainerType" }, + { gecko = "StyleContainerName", servo = "crate::values::computed::ContainerName" }, + { gecko = "StyleRestyleHint", servo = "crate::invalidation::element::restyle_hints::RestyleHint" }, + { gecko = "StyleTouchAction", servo = "crate::values::computed::TouchAction" }, + { gecko = "StyleWillChange", servo = "crate::values::specified::box_::WillChange" }, + { gecko = "StyleColorScheme", servo = "crate::values::specified::color::ColorScheme" }, + { gecko = "StyleTextDecorationLine", servo = "crate::values::computed::TextDecorationLine" }, + { gecko = "StyleMasonryAutoFlow", servo = "crate::values::specified::MasonryAutoFlow" }, + { gecko = "StyleMasonryPlacement", servo = "crate::values::specified::MasonryPlacement" }, + { gecko = "StyleMasonryItemOrder", servo = "crate::values::specified::MasonryItemOrder" }, + { gecko = "StyleTextTransform", servo = "crate::values::computed::TextTransform" }, + { gecko = "StyleTextUnderlinePosition", servo = "crate::values::computed::TextUnderlinePosition" }, + { gecko = "StyleStrong", servo = "crate::gecko_bindings::sugar::ownership::Strong" }, + { gecko = "StyleGenericFontFamily", servo = "crate::values::computed::font::GenericFontFamily" }, + { gecko = "StyleGenericPosition", servo = "crate::values::generics::position::GenericPosition" }, + { gecko = "StyleGenericMozImageRect", servo = "crate::values::generics::image::GenericMozImageRect" }, + { gecko = "StyleGenericCounterPair", servo = "crate::values::generics::counters::GenericCounterPair" }, + { gecko = "StyleGenericShapeRadius", servo = "crate::values::generics::basic_shape::GenericShapeRadius" }, + { gecko = "StyleGenericClipRect", servo = "crate::values::generics::GenericClipRect" }, + { gecko = "StyleGenericCursorImage", servo = "crate::values::generics::ui::GenericCursorImage" }, + { gecko = "StyleFontFamily", servo = "crate::values::computed::font::FontFamily" }, + { gecko = "StyleGenericFontSizeAdjust", servo = "crate::values::generics::font::GenericFontSizeAdjust" }, + { gecko = "StyleFontFamilyNameSyntax", servo = "crate::values::computed::font::FontFamilyNameSyntax" }, + { gecko = "StyleGenericColor", servo = "crate::values::generics::color::Color" }, + { gecko = "StyleSystemColor", servo = "crate::values::specified::color::SystemColor" }, + { gecko = "StyleSystemFont", servo = "crate::values::specified::font::SystemFont" }, + { gecko = "StyleGenericColorOrAuto", servo = "crate::values::generics::color::ColorOrAuto" }, + { gecko = "StyleGenericScrollbarColor", servo = "crate::values::generics::ui::ScrollbarColor" }, + { gecko = "StyleAbsoluteColor", servo = "crate::color::AbsoluteColor" }, + { gecko = "StyleOrigin", servo = "crate::stylesheets::Origin" }, + { gecko = "StyleGenericVerticalAlign", servo = "crate::values::generics::box_::VerticalAlign" }, + { gecko = "StyleVerticalAlignKeyword", servo = "crate::values::generics::box_::VerticalAlignKeyword" }, + { gecko = "StyleGenericBasicShape", servo = "crate::values::generics::basic_shape::BasicShape" }, + { gecko = "StyleArcSlice", servo = "style_traits::arc_slice::ArcSlice" }, + { gecko = "StyleForgottenArcSlicePtr", servo = "style_traits::arc_slice::ForgottenArcSlicePtr" }, + { gecko = "StyleOwnedSlice", servo = "style_traits::owned_slice::OwnedSlice" }, + { gecko = "StyleMozContextProperties", servo = "crate::values::specified::svg::MozContextProperties" }, + { gecko = "StyleQuotes", servo = "crate::values::specified::list::Quotes" }, + { gecko = "StyleOwnedStr", servo = "style_traits::owned_str::OwnedStr" }, + { gecko = "StyleGenericBoxShadow", servo = "crate::values::generics::effects::BoxShadow" }, + { gecko = "StyleGenericSimpleShadow", servo = "crate::values::generics::effects::SimpleShadow" }, + { gecko = "StyleGenericTransformOperation", servo = "crate::values::generics::transform::TransformOperation" }, + { gecko = "StyleGenericTransform", servo = "crate::values::generics::transform::Transform" }, + { gecko = "StyleGenericScale", servo = "crate::values::generics::transform::Scale" }, + { gecko = "StyleGenericRotate", servo = "crate::values::generics::transform::Rotate" }, + { gecko = "StyleGenericTranslate", servo = "crate::values::generics::transform::Translate" }, + { gecko = "StyleAngle", servo = "crate::values::computed::Angle" }, + { gecko = "StyleGenericBorderImageSideWidth", servo = "crate::values::generics::border::BorderImageSideWidth" }, + { gecko = "StyleGenericUrlOrNone", servo = "crate::values::generics::url::UrlOrNone" }, + { gecko = "StyleGenericCalcNode", servo = "crate::values::generics::calc::GenericCalcNode" }, + { gecko = "StyleCssUrl", servo = "crate::gecko::url::CssUrl" }, + { gecko = "StyleSpecifiedUrl", servo = "crate::gecko::url::SpecifiedUrl" }, + { gecko = "StyleSpecifiedImageUrl", servo = "crate::gecko::url::SpecifiedImageUrl" }, + { gecko = "StyleComputedUrl", servo = "crate::gecko::url::ComputedUrl" }, + { gecko = "StyleComputedImageUrl", servo = "crate::gecko::url::ComputedImageUrl" }, + { gecko = "StyleLoadData", servo = "crate::gecko::url::LoadData" }, + { gecko = "StyleGenericFilter", servo = "crate::values::generics::effects::Filter" }, + { gecko = "StyleGenericGradient", servo = "crate::values::generics::image::Gradient" }, + { gecko = "StyleLineDirection", servo = "crate::values::computed::image::LineDirection" }, + { gecko = "StyleGridTemplateAreas", servo = "crate::values::computed::position::GridTemplateAreas" }, + { gecko = "StyleGenericGridLine", servo = "crate::values::generics::grid::GridLine" }, + { gecko = "StyleGenericTrackSize", servo = "crate::values::generics::grid::TrackSize" }, + { gecko = "StyleGenericTrackBreadth", servo = "crate::values::generics::grid::TrackBreadth" }, + { gecko = "StyleGenericImplicitGridTracks", servo = "crate::values::generics::grid::ImplicitGridTracks" }, + { gecko = "StyleImplicitGridTracks", servo = "crate::values::computed::ImplicitGridTracks" }, + { gecko = "StyleNumberOrPercentage", servo = "crate::values::computed::NumberOrPercentage" }, + { gecko = "StyleGenericSVGPaint", servo = "crate::values::generics::svg::SVGPaint" }, + { gecko = "StyleGenericTrackRepeat", servo = "crate::values::generics::grid::TrackRepeat" }, + { gecko = "StyleGenericTrackListValue", servo = "crate::values::generics::grid::TrackListValue" }, + { gecko = "StyleGenericTrackList", servo = "crate::values::generics::grid::TrackList" }, + { gecko = "StyleGenericGridTemplateComponent", servo = "crate::values::generics::grid::GridTemplateComponent" }, + { gecko = "StyleTextEmphasisStyle", servo = "crate::values::computed::text::TextEmphasisStyle" }, + { gecko = "StyleTextEmphasisPosition", servo = "crate::values::computed::TextEmphasisPosition" }, + { gecko = "StyleFontVariantAlternates", servo = "crate::values::specified::font::FontVariantAlternates" }, + { gecko = "StyleSVGPaintOrder", servo = "crate::values::specified::svg::SVGPaintOrder" }, + { gecko = "StyleClipRectOrAuto", servo = "crate::values::computed::ClipRectOrAuto" }, + { gecko = "StyleCounterReset", servo = "crate::values::computed::CounterReset" }, + { gecko = "StyleCounterSet", servo = "crate::values::computed::CounterSet" }, + { gecko = "StyleCounterIncrement", servo = "crate::values::computed::CounterIncrement" }, + { gecko = "StyleContent", servo = "crate::values::computed::counters::Content" }, + { gecko = "StyleSymbolsType", servo = "crate::values::generics::SymbolsType" }, + { gecko = "StyleCounterStyle", servo = "crate::values::generics::CounterStyle" }, + { gecko = "StyleComputedJustifyItems", servo = "crate::values::computed::align::ComputedJustifyItems" }, + { gecko = "StyleAlignItems", servo = "crate::values::computed::AlignItems" }, + { gecko = "StyleJustifySelf", servo = "crate::values::computed::JustifySelf" }, + { gecko = "StyleAlignSelf", servo = "crate::values::computed::AlignSelf" }, + { gecko = "StyleAlignContent", servo = "crate::values::computed::align::AlignContent" }, + { gecko = "StyleJustifyTracks", servo = "crate::values::computed::align::JustifyTracks" }, + { gecko = "StyleAlignTracks", servo = "crate::values::computed::align::AlignTracks" }, + { gecko = "StyleJustifyContent", servo = "crate::values::computed::align::JustifyContent" }, + { gecko = "StyleComputedValueFlags", servo = "crate::computed_value_flags::ComputedValueFlags" }, + { gecko = "StyleImage", servo = "crate::values::computed::Image" }, + { gecko = "StyleShapeOutside", servo = "crate::values::computed::basic_shape::ShapeOutside" }, + { gecko = "StyleClipPath", servo = "crate::values::computed::basic_shape::ClipPath" }, + { gecko = "StyleGridAutoFlow", servo = "crate::values::computed::GridAutoFlow" }, + { gecko = "StyleCursor", servo = "crate::values::computed::Cursor" }, + { gecko = "StyleSVGStrokeDashArray", servo = "crate::values::computed::svg::SVGStrokeDashArray" }, + { gecko = "StyleSVGWidth", servo = "crate::values::computed::svg::SVGWidth" }, + { gecko = "StyleSVGOpacity", servo = "crate::values::computed::svg::SVGOpacity" }, + { gecko = "StyleSVGLength", servo = "crate::values::computed::svg::SVGLength" }, + { gecko = "StyleFontSizeKeyword", servo = "crate::values::specified::font::FontSizeKeyword" }, + { gecko = "StyleCaptionSide", servo = "crate::values::computed::table::CaptionSide" }, + { gecko = "StylePageName", servo = "crate::values::specified::page::PageName" }, + { gecko = "StylePageOrientation", servo = "crate::values::generics::page::PageOrientation" }, + { gecko = "StylePageSize", servo = "crate::values::computed::page::PageSize" }, + { gecko = "StyleDProperty", servo = "crate::values::specified::svg::DProperty" }, + { gecko = "StyleImageRendering", servo = "crate::values::computed::ImageRendering" }, + { gecko = "StylePrintColorAdjust", servo = "crate::values::computed::PrintColorAdjust" }, + { gecko = "StyleForcedColorAdjust", servo = "crate::values::computed::ForcedColorAdjust" }, + { gecko = "StyleScrollbarGutter", servo = "crate::values::computed::ScrollbarGutter" }, + { gecko = "StyleHyphenateCharacter", servo = "crate::values::computed::HyphenateCharacter" }, + { gecko = "StyleContentVisibility", servo = "crate::values::computed::ContentVisibility" }, + { gecko = "StyleContainIntrinsicSize", servo = "crate::values::computed::ContainIntrinsicSize" }, + { gecko = "StyleFontStyle", servo = "crate::values::computed::font::FontStyle" }, + { gecko = "StyleFontWeight", servo = "crate::values::computed::font::FontWeight" }, + { gecko = "StyleFontStretch", servo = "crate::values::computed::font::FontStretch" }, + { gecko = "StyleFontPalette", servo = "crate::values::computed::font::FontPalette" }, + { gecko = "StyleFontSynthesis", servo = "crate::values::computed::font::FontSynthesis" }, + { gecko = "StyleBoolInteger", servo = "crate::values::computed::BoolInteger" }, + { gecko = "StyleTime", servo = "crate::values::computed::Time" }, + { gecko = "StyleXTextScale", servo = "crate::values::computed::XTextScale" }, + { gecko = "StyleAnimationValueMap", servo = "crate::properties::animated_properties::AnimationValueMap" }, + { gecko = "StyleAuthorStyles", servo = "crate::gecko::data::AuthorStyles" }, + { gecko = "StyleUseCounters", servo = "crate::use_counters::UseCounters" }, + { gecko = "StyleStylesheetContents", servo = "crate::stylesheets::StylesheetContents" }, + { gecko = "StyleAnimationValue", servo = "crate::properties::animated_properties::AnimationValue" }, + { gecko = "StyleLockedDeclarationBlock", servo = "crate::gecko::arc_types::LockedDeclarationBlock" }, + { gecko = "StyleLockedMediaList", servo = "crate::gecko::arc_types::LockedMediaList" }, + { gecko = "StyleLockedImportRule", servo = "crate::gecko::arc_types::LockedImportRule" }, + { gecko = "StyleLockedFontFaceRule", servo = "crate::gecko::arc_types::LockedFontFaceRule" }, + { gecko = "StyleBaselineSource", servo = "crate::values::computed::BaselineSource" }, + { gecko = "StyleAu", servo = "app_units::Au" }, +] + +mapped-generic-types = [ + { generic = true, gecko = "mozilla::RustCell", servo = "::std::cell::Cell" }, + { generic = false, gecko = "ServoNodeData", servo = "atomic_refcell::AtomicRefCell<crate::data::ElementData>" }, + { generic = false, gecko = "mozilla::ServoWritingMode", servo = "crate::logical_geometry::WritingMode" }, + { generic = false, gecko = "mozilla::ServoCustomPropertiesMap", servo = "Option<servo_arc::Arc<crate::custom_properties::CustomPropertiesMap>>" }, + { generic = false, gecko = "mozilla::ServoRuleNode", servo = "Option<crate::rule_tree::StrongRuleNode>" }, + { generic = false, gecko = "nsACString", servo = "nsstring::nsACString" }, + { generic = false, gecko = "nsAString", servo = "nsstring::nsAString" }, + { generic = false, gecko = "nsCString", servo = "nsstring::nsCString" }, + { generic = false, gecko = "nsString", servo = "nsstring::nsString" }, +] + +allowlist-functions = ["Servo_.*", "Gecko_.*"] |