Backed out 4 changesets (bug 1825722) for causing reftest failures CLOSED TREE
[gecko.git] / layout / style / ServoBindings.toml
blob3ca6c436c70d5522559b9ee20b05a4b349f49757
1 [structs]
2 headers = [
3     "nsStyleStruct.h",
4     "mozilla/StyleAnimationValue.h",
5     "gfxFontConstants.h",
6     "gfxFontFeatures.h",
7     "COLRFonts.h",
8     "nsStyleConsts.h",
9     "mozilla/css/Loader.h",
10     "mozilla/AnimatedPropertyID.h",
11     "mozilla/css/SheetLoadData.h",
12     "mozilla/DeclarationBlock.h",
13     "mozilla/dom/AnimationEffectBinding.h",
14     "mozilla/dom/HTMLSlotElement.h",
15     "mozilla/dom/KeyframeEffectBinding.h",
16     "mozilla/dom/MediaList.h",
17     "mozilla/dom/ScreenBinding.h",
18     "mozilla/dom/ShadowRoot.h",
19     "mozilla/dom/SVGPathSegBinding.h",
20     "mozilla/ipc/ByteBuf.h",
21     "mozilla/AnimationPropertySegment.h",
22     "mozilla/ComputedTiming.h",
23     "mozilla/CORSMode.h",
24     "mozilla/Keyframe.h",
25     "mozilla/ServoElementSnapshot.h",
26     "mozilla/ServoElementSnapshotTable.h",
27     "mozilla/dom/Element.h",
28     "mozilla/dom/ChildIterator.h",
29     "mozilla/dom/NameSpaceConstants.h",
30     "mozilla/LookAndFeel.h",
31     "mozilla/GeckoBindings.h",
32     "mozilla/ServoBindings.h",
33     "mozilla/ComputedStyle.h",
34     "mozilla/PresShell.h",
35     "mozilla/ServoTraversalStatistics.h",
36     "mozilla/SizeOfState.h",
37     "nsCSSProps.h",
38     "nsNameSpaceManager.h",
40 raw-lines = [
41     # FIXME(emilio): Incrementally remove these "pub use"s. Probably
42     # mozilla::css and mozilla::dom are easier.
43     "#[allow(unknown_lints, ambiguous_glob_reexports)]",
44     "pub use self::root::*;",
45     "pub use self::root::mozilla::*;",
46     "pub use self::root::mozilla::css::*;",
47     "pub use self::root::mozilla::dom::*;",
49 hide-types = [
50     ".*char_traits",
51     ".*incompatible_char_type",
52     ".*string_view",
53     # https://github.com/rust-lang/rust-bindgen/issues/1503
54     "mozilla::StyleTimingFunction.*",
55     # https://github.com/rust-lang/rust-bindgen/issues/1559
56     "mozilla::StyleGeneric.*",
57     ".*ErrorResult.*",
59 bitfield-enums = [
60     "nsChangeHint",
61     "mozilla::OriginFlags",
62     "NodeSelectorFlags",
64 rusty-enums = [
65     "nsCompatibility",
66     "mozilla::EffectCompositor_CascadeLevel",
67     "mozilla::SheetType",
68     "mozilla::dom::CallerType",
69     "mozilla::dom::IterationCompositeOperation",
70     "mozilla::dom::CompositeOperation",
71     "mozilla::dom::CompositeOperationOrAuto",
72     "mozilla::InheritTarget",
73     "mozilla::css::DocumentMatchingFunction",
74     "mozilla::css::SheetParsingMode",
75     "nsStyleSVGOpacitySource",
76     "mozilla::dom::Document_DocumentTheme",
77     "mozilla::dom::Document_Type",
78     "mozilla::LookAndFeel_IntID",
79     "mozilla::LookAndFeel_FloatID",
80     "nsCSSUnit",
81     "nsCSSFontDesc",
82     "nsCSSPropertyID",
83     "nsCSSCounterDesc",
84     "nsresult",
85     "nsAtom_AtomKind",
86     "nsStyleImageLayers_LayerType",
87     "mozilla::ServoElementSnapshotFlags",
88     "mozilla::Side",
89     "mozilla::dom::PlaybackDirection",
90     "mozilla::dom::FillMode",
91     "mozilla::dom::ScreenColorGamut",
92     "mozilla::HalfCorner",
93     "mozilla::StyleFloatEdge",
94     "mozilla::StyleShapeRadius",
95     "mozilla::StyleWindowDragging",
96     "mozilla::StyleAnimationPlayState",
97     "mozilla::StyleOrient",
98     "mozilla::StyleBoxSizing",
99     "mozilla::StyleClear",
100     "mozilla::StyleColumnFill",
101     "mozilla::StyleColumnSpan",
102     "mozilla::StyleDirection",
103     "mozilla::StyleFloat",
104     "mozilla::StyleImageOrientation",
105     "mozilla::StyleInert",
106     "mozilla::StyleUserModify",
107     "mozilla::StyleUserInput",
108     "mozilla::StyleUserFind",
109     "mozilla::StyleBoxDirection",
110     "mozilla::StyleRubyAlign",
111     "mozilla::StyleTextSecurity",
112     "mozilla::StyleTextSizeAdjust",
113     "mozilla::StyleHyphens",
114     "mozilla::StyleRubyPosition",
115     "mozilla::StyleShapeSourceType",
116     "mozilla::StyleVisibility",
117     "mozilla::StyleMathStyle",
118     "nsStyleImageLayers_Size_DimensionType",
119     "mozilla::StyleBorderCollapse",
120     "mozilla::StyleBorderImageRepeat",
121     "mozilla::StyleBoxPack",
122     "mozilla::StyleWindowShadow",
123     "mozilla::StyleDominantBaseline",
124     "mozilla::StyleBoxOrient",
125     "mozilla::StyleBoxAlign",
126     "mozilla::StyleUserFocus",
127     "mozilla::StyleUserSelect",
128     "mozilla::StyleImageLayerRepeat",
129     "mozilla::StyleImageLayerAttachment",
130     "mozilla::StylePositionProperty",
131     "mozilla::StyleBoxDecorationBreak",
132     "mozilla::StyleBorderStyle",
133     "mozilla::StyleRuleInclusion",
134     "mozilla::StyleGridTrackBreadth",
135     "mozilla::StyleOverscrollBehavior",
136     "mozilla::StyleImeMode",
137     "mozilla::StyleOverflowAnchor",
138     "mozilla::StyleListStylePosition",
139     "mozilla::StylePointerEvents",
140     "mozilla::StyleScrollbarWidth",
141     "mozilla::StyleWhiteSpaceCollapse",
142     "mozilla::StyleTextWrapMode",
143     "mozilla::StyleTextRendering",
144     "mozilla::StyleFlexDirection",
145     "mozilla::StyleStrokeLinecap",
146     "mozilla::StyleStrokeLinejoin",
147     "mozilla::StyleFlexWrap",
148     "mozilla::StyleMathVariant",
149     "mozilla::StyleTextDecorationSkipInk",
150     "mozilla::StyleTextDecorationLength",
151     "mozilla::StyleMaskType",
152     "mozilla::StyleShapeRendering",
153     "mozilla::StyleTextAnchor",
154     "mozilla::StyleObjectFit",
155     "mozilla::StyleTextDecorationStyle",
156     "mozilla::StyleTopLayer",
157     "mozilla::StyleIsolation",
158     "mozilla::StyleTextOrientation",
159     "mozilla::StyleMozBoxCollapse",
160     "mozilla::StyleMozBoxLayout",
161     "mozilla::StyleTextCombineUpright",
162     "mozilla::StyleUnicodeBidi",
163     "mozilla::StyleTableLayout",
164     "mozilla::StyleEmptyCells",
165     "nsStyleImageType",
166     "nsINode_BooleanFlag",
167     "mozilla::PseudoStyleType",
168     "mozilla::LookAndFeel_ColorID",
169     "mozilla::LookAndFeel_FontID",
170     "nsStyleTransformMatrix::MatrixTransformOperator",
171     "mozilla::StyleGeometryBox",
172     "mozilla::SystemColor",
173     "mozilla::StyleMaskMode",
174     "mozilla::StyleScrollBehavior",
175     "mozilla::StyleColorInterpolation",
176     "mozilla::StyleVectorEffect",
177     "mozilla::StyleBackfaceVisibility",
178     "mozilla::StyleBlend",
179     "mozilla::StyleMaskComposite",
180     "mozilla::StyleWritingModeProperty",
181     "mozilla::StyleTextWrapStyle",
182     "StyleFontVariantEmoji",
184 allowlist-vars = [
185     "NS_ATTRVALUE_.*",
186     "NODE_.*",
187     "ELEMENT_.*",
188     "NS_FONT_.*",
189     "NS_STYLE_.*",
190     "NS_MATHML_.*",
191     "NS_RADIUS_.*",
192     "BORDER_COLOR_.*",
193     "BORDER_STYLE_.*",
194     "CSS_PSEUDO_ELEMENT_.*",
195     "SERVO_CSS_PSEUDO_ELEMENT_FLAGS_.*",
196     "kNameSpaceID_.*",
197     "kGenericFont_.*",
198     "kPresContext_.*",
199     "nsNameSpaceManager_.*",
200     "GECKO_IS_NIGHTLY",
201     "NS_SAME_AS_FOREGROUND_COLOR",
202     "mozilla::detail::gGkAtoms",
203     "mozilla::dom::SVGPathSeg_Binding::PATHSEG_.*",
205 # TODO(emilio): A bunch of types here can go away once we generate bindings and
206 # structs together.
207 allowlist-types = [
208     "ServoCssRules",
209     "nsFontFaceRuleContainer",
210     "Matrix4x4Components",
211     "mozilla::ComputedKeyframeValues",
212     "mozilla::Keyframe",
213     "mozilla::PropertyValuePair",
214     "mozilla::DeclarationBlockMutationClosure",
215     "mozilla::AnimatedPropertyID",
216     "mozilla::AnimationPropertySegment",
217     "mozilla::AnonymousCounterStyle",
218     "mozilla::AtomArray",
219     "mozilla::ComputedTiming",
220     "mozilla::Matrix4x4Components",
221     "mozilla::PreferenceSheet",
222     "mozilla::SeenPtrs",
223     "mozilla::ServoElementSnapshot.*",
224     "mozilla::ComputedStyle",
225     "mozilla::StyleSheet",
226     "mozilla::ServoStyleSheetInner",
227     "mozilla::ServoStyleSetSizes",
228     "mozilla::ServoTraversalStatistics",
229     "mozilla::css::LoaderReusableStyleSheets",
230     "mozilla::css::SheetLoadData",
231     "mozilla::css::SheetLoadDataHolder",
232     "mozilla::css::SheetParsingMode",
233     "mozilla::css::DocumentMatchingFunction",
234     "mozilla::dom::IterationCompositeOperation",
235     "mozilla::dom::StyleChildrenIterator",
236     "mozilla::HalfCorner",
237     "mozilla::ipc::ByteBuf",
238     "mozilla::MallocSizeOf",
239     "mozilla::OriginFlags",
240     "mozilla::PropertyStyleAnimationValuePair",
241     "mozilla::ServoTraversalFlags",
242     "mozilla::StyleShapeRadius",
243     "mozilla::StyleGrid.*",
244     "mozilla::UpdateAnimationsTasks",
245     "mozilla::PointerCapabilities",
246     "mozilla::LookAndFeel",
247     "mozilla::gfx::Float",
248     "mozilla::gfx::FontVariation",
249     "mozilla::gfx::FontPaletteValueSet",
250     "mozilla::gfx::FontPaletteValueSet::PaletteValeus",
251     "mozilla::StyleImageLayerAttachment",
252     "gfxFontFeature",
253     "gfxFontVariation",
254     ".*ThreadSafe.*Holder",
255     "AnonymousContent",
256     "AudioContext",
257     "DefaultDelete",
258     "DOMIntersectionObserverEntry",
259     "Element",
260     "mozilla::FontSizePrefs",
261     "FragmentOrURL",
262     "FrameRequestCallback",
263     "GeckoParserExtraData",
264     "GeckoFontMetrics",
265     "gfxFontFeatureValueSet",
266     "GridNamedArea",
267     "mozilla::HalfCorner",
268     "Image",
269     "ImageURL",
270     "Keyframe",
271     "mozilla::MediumFeaturesChangedResult",
272     "nsAttrName",
273     "nsAttrValue",
274     "MiscContainer",
275     "nscolor",
276     "nsChangeHint",
277     "nsCSSCounterDesc",
278     "nsCSSFontDesc",
279     "nsCSSKTableEntry",
280     "nsCSSPropertyID",
281     "nsCSSPropertyIDSet",
282     "nsCSSProps",
283     "nsCSSShadowArray",
284     "nsCSSValue",
285     "nsCSSValueList",
286     "nsCSSValueList_heap",
287     "nsCSSValuePair_heap",
288     "nsCSSValuePairList",
289     "nsCSSValuePairList_heap",
290     "nsCSSValueTriplet_heap",
291     "nsCursorImage",
292     "nsFont",
293     "nsAtom",
294     "nsDynamicAtom",
295     "nsMargin",
296     "nsRect",
297     "nsresult",
298     "nsSimpleContentList",
299     "nsSize",
300     "nsStyleBackground",
301     "nsStyleBorder",
302     "nsStyleColor",
303     "nsStyleColumn",
304     "nsStyleContent",
305     "nsStyleContentData",
306     "ComputedStyle",
307     "nsStyleCounterData",
308     "nsStyleDisplay",
309     "nsStyleEffects",
310     "nsStyleFilter",
311     "nsStyleFont",
312     "nsStyleGradient",
313     "nsStyleGridTemplate",
314     "nsStyleImage",
315     "nsStyleImageLayers",
316     "nsStyleList",
317     "nsStyleMargin",
318     "nsStyleOutline",
319     "nsStylePadding",
320     "nsStylePage",
321     "nsStylePosition",
322     "nsStyleSides",
323     "nsStyleSVG",
324     "nsStyleSVGOpacitySource",
325     "nsStyleSVGReset",
326     "nsStyleTable",
327     "nsStyleTableBorder",
328     "nsStyleText",
329     "nsStyleTextReset",
330     "nsStyleUIReset",
331     "nsStyleUnion",
332     "nsStyleUI",
333     "nsStyleVisibility",
334     "nsStyleXUL",
335     "nsTArrayHeader",
336     "Position",
337     "PropertyValuePair",
338     "Runnable",
339     "ServoAttrSnapshot",
340     "ServoComputedData",
341     "ServoComputedDataBorrowed",
342     "ServoElementSnapshot",
343     "ComputedStyleStrong",
344     "ComputedStyleBorrowed",
345     "ComputedStyleBorrowedOrNull",
346     "SheetParsingMode",
347     "StaticRefPtr",
348     "StyleAnimation",
349     "StyleGeometryBox",
350     "StyleShapeSource",
351     "StyleTransition",
352     "ThemeWidgetType",
353     "mozilla::UniquePtr",
354     "mozilla::DeclarationBlock",
355     "mozilla::DefaultDelete",
356     "mozilla::Side",
357     "mozilla::binding_danger::AssertAndSuppressCleanupPolicy",
358     "mozilla::InheritTarget",
359     "mozilla::dom::MediaList",
360     "mozilla::StyleRuleInclusion",
361     "nsStyleTransformMatrix::MatrixTransformOperator",
362     "NodeSelectorFlags",
364 opaque-types = [
365     "mozilla::StyleThinArc", # https://github.com/rust-lang/rust-bindgen/issues/1557
366     "std::pair__PCCP",
367     "std::namespace::atomic___base", "std::atomic__My_base",
368     "std::atomic",
369     "std::atomic___base",
370     "std::tuple.*", # Causes "Cannot find type _Pred in this scope" error on mac, like rust-skia#571
371     "std::.*::tuple.*",
373     # We want everything but FontVariation and Float to be opaque but we don't
374     # have negative regexes.
375     "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]))",
376     "mozilla::dom::Sequence",
377     "mozilla::SmallPointerArray",
378     "mozilla::dom::Optional",
379     "mozilla::dom::OwningNodeOrString_Value",
380     "mozilla::dom::Nullable",
381     "mozilla::external::AtomicRefCounted",
382     "RefPtr_Proxy",
383     "RefPtr_Proxy_member_function",
384     "nsAutoPtr_Proxy",
385     "nsAutoPtr_Proxy_member_function",
386     "mozilla::detail::HashTable", # <- We should be able to remove this and
387                                   # HashSet below once
388                                   # https://github.com/rust-lang/rust-bindgen/pull/1515
389                                   # is available
390     "mozilla::detail::PointerType",
391     "mozilla::HashSet",
392     "mozilla::Pair",
393     "mozilla::Pair_Base",
394     "mozilla::ScrollAxis",  # <- For some reason the alignment of this is 4
395                             # for clang.
396     "mozilla::SeenPtrs",
397     "mozilla::SupportsWeakPtr",
398     "SupportsWeakPtr",
399     "mozilla::detail::WeakReference",
400     "mozilla::WeakPtr",
401     "nsWritingIterator_reference", "nsReadingIterator_reference",
402     "nsTObserverArray",  # <- Inherits from nsAutoTObserverArray<T, 0>
403     "mozilla::DoublyLinkedList",
404     "mozilla::SafeDoublyLinkedList",
405     "nsTHashtable",  # <- Inheriting from inner typedefs that clang
406                      #    doesn't expose properly.
407     "nsTBaseHashSet", # <- Ditto
408     "nsBaseHashtable", "nsRefCountedHashtable", "nsClassHashtable",  # <- Ditto
409     "mozilla::dom::Document_SelectorCache",  # <- Inherits from nsExpirationTracker<.., 4>
410     "nsPIDOMWindow",  # <- Takes the vtable from a template parameter, and we can't
411                       #    generate it conditionally.
412     "JS::Rooted",
413     "mozilla::Maybe",
414     "mozilla::Variant",
415     "mozilla::dom::TreeOrderedArray", # AutoTArray<>
416     "gfxSize",  # <- union { struct { T width; T height; }; T components[2] };
417     "gfxSize_Super",  # Ditto.
418     "StyleAnimationValue", # pulls in a whole bunch of stuff we don't need in the bindings
419     "mozilla::dom::.*Callback", # Pulls in ErrorResult and other things that
420                                 # don't align properly on Linux 32-bit
421     "mozilla::SchedulerGroup", # Non-standard-layout packing of field into superclass
422     "mozilla::Widget.*Event", # As above
423     "mozilla::detail::ThreadLocal.*",
424     "std::make_signed_t",
425     "mozilla::ProfileChunkedBuffer",
428 # All cbindgen-types are in mod "structs::root::mozilla".
429 # FIXME(emilio): We probably want to automate this somehow...
430 cbindgen-types = [
431     { gecko = "StyleAnimationIterationCount", servo = "crate::values::computed::AnimationIterationCount" },
432     { gecko = "StyleAnimationTimeline", servo = "crate::values::computed::AnimationTimeline" },
433     { gecko = "StyleTransitionBehavior", servo = "crate::values::computed::TransitionBehavior" },
434     { gecko = "StyleAppearance", servo = "crate::values::specified::Appearance" },
435     { gecko = "StyleAspectRatio", servo = "crate::values::computed::position::AspectRatio" },
436     { gecko = "StyleAtom", servo = "crate::Atom" },
437     { gecko = "StyleComputedFontStretchRange", servo = "crate::font_face::ComputedFontStretchRange" },
438     { gecko = "StyleComputedFontStyleDescriptor", servo = "crate::font_face::ComputedFontStyleDescriptor" },
439     { gecko = "StyleComputedFontWeightRange", servo = "crate::font_face::ComputedFontWeightRange" },
440     { gecko = "StyleComputedTimingFunction", servo = "crate::values::computed::easing::TimingFunction" },
441     { gecko = "StylePrefersContrast", servo = "crate::gecko::media_features::PrefersContrast" },
442     { gecko = "StyleCursorKind", servo = "crate::values::computed::ui::CursorKind" },
443     { gecko = "StyleDisplay", servo = "crate::values::specified::Display" },
444     { gecko = "StyleDisplayMode", servo = "crate::gecko::media_features::DisplayMode" },
445     { gecko = "StylePlatform", servo = "crate::gecko::media_features::Platform" },
446     { gecko = "StyleGtkThemeFamily", servo = "crate::gecko::media_features::GtkThemeFamily" },
447     { gecko = "StylePrefersColorScheme", servo = "crate::gecko::media_features::PrefersColorScheme" },
448     { gecko = "StyleScripting", servo = "crate::gecko::media_features::Scripting" },
449     { gecko = "StyleDynamicRange", servo = "crate::gecko::media_features::DynamicRange" },
450     { gecko = "StyleFillRule", servo = "crate::values::generics::basic_shape::FillRule" },
451     { gecko = "StyleFontDisplay", servo = "crate::font_face::FontDisplay" },
452     { gecko = "StyleFontFaceSourceListComponent", servo = "crate::font_face::FontFaceSourceListComponent" },
453     { gecko = "StyleFontFaceSourceFormatKeyword", servo = "crate::font_face::FontFaceSourceFormatKeyword" },
454     { gecko = "StyleFontFaceSourceTechFlags", servo = "crate::font_face::FontFaceSourceTechFlags" },
455     { gecko = "StyleFontLanguageOverride", servo = "crate::values::computed::font::FontLanguageOverride" },
456     { gecko = "StyleOffsetPath", servo = "crate::values::computed::motion::OffsetPath" },
457     { gecko = "StyleOffsetPathFunction", servo = "crate::values::computed::motion::OffsetPathFunction" },
458     { gecko = "StyleGenericOffsetPath", servo = "crate::values::generics::motion::OffsetPath" },
459     { gecko = "StyleGenericOffsetPathFunction", servo = "crate::values::generics::motion::OffsetPathFunction" },
460     { gecko = "StyleMozTheme", servo = "crate::values::computed::ui::MozTheme" },
461     { gecko = "StyleOffsetPosition", servo = "crate::values::computed::motion::OffsetPosition" },
462     { gecko = "StyleOffsetRotate", servo = "crate::values::computed::motion::OffsetRotate" },
463     { gecko = "StylePathCommand", servo = "crate::values::specified::svg_path::PathCommand" },
464     { gecko = "StyleRayFunction", servo = "crate::values::computed::motion::RayFunction" },
465     { gecko = "StyleUnicodeRange", servo = "cssparser::UnicodeRange" },
466     { gecko = "StyleOverflowWrap", servo = "crate::values::computed::OverflowWrap" },
467     { gecko = "StyleWordBreak", servo = "crate::values::computed::WordBreak" },
468     { gecko = "StyleTextJustify", servo = "crate::values::computed::TextJustify" },
469     { gecko = "StyleMozControlCharacterVisibility", servo = "crate::values::computed::text::MozControlCharacterVisibility" },
470     { gecko = "StyleLineBreak", servo = "crate::values::computed::LineBreak" },
471     { gecko = "StyleLineClamp", servo = "crate::values::computed::LineClamp" },
472     { gecko = "StyleUserSelect", servo = "crate::values::computed::UserSelect" },
473     { gecko = "StyleBreakBetween", servo = "crate::values::computed::BreakBetween" },
474     { gecko = "StyleBreakWithin", servo = "crate::values::computed::BreakWithin" },
475     { gecko = "StyleBorderStyle", servo = "crate::values::computed::BorderStyle" },
476     { gecko = "StyleOutlineStyle", servo = "crate::values::computed::OutlineStyle" },
477     { gecko = "StyleScrollSnapAlign", servo = "crate::values::computed::ScrollSnapAlign" },
478     { gecko = "StyleScrollSnapStop", servo = "crate::values::computed::ScrollSnapStop" },
479     { gecko = "StyleScrollSnapStrictness", servo = "crate::values::computed::ScrollSnapStrictness" },
480     { gecko = "StyleScrollSnapType", servo = "crate::values::computed::ScrollSnapType" },
481     { gecko = "StyleAnimationName", servo = "crate::values::computed::AnimationName" },
482     { gecko = "StyleAnimationDirection", servo = "crate::values::computed::AnimationDirection" },
483     { gecko = "StyleAnimationFillMode", servo = "crate::values::computed::AnimationFillMode" },
484     { gecko = "StyleAnimationPlayState", servo = "crate::values::computed::AnimationPlayState" },
485     { gecko = "StyleAnimationComposition", servo = "crate::values::computed::AnimationComposition" },
486     { gecko = "StyleScrollTimelineName", servo = "crate::values::computed::ScrollTimelineName" },
487     { gecko = "StyleScrollAxis", servo = "crate::values::computed::ScrollAxis" },
488     { gecko = "StyleViewTimelineInset", servo = "crate::values::computed::ViewTimelineInset" },
489     { gecko = "StyleResize", servo = "crate::values::computed::Resize" },
490     { gecko = "StyleOverflowClipBox", servo = "crate::values::computed::OverflowClipBox" },
491     { gecko = "StyleFloat", servo = "crate::values::computed::Float" },
492     { gecko = "StyleClear", servo = "crate::values::computed::Clear" },
493     { gecko = "StyleOverscrollBehavior", servo = "crate::values::computed::OverscrollBehavior" },
494     { gecko = "StyleTextAlign", servo = "crate::values::computed::TextAlign" },
495     { gecko = "StyleTextAlignLast", servo = "crate::values::computed::text::TextAlignLast" },
496     { gecko = "StyleTextIndent", servo = "crate::values::computed::text::TextIndent" },
497     { gecko = "StyleTextOverflow", servo = "crate::values::computed::TextOverflow" },
498     { gecko = "StyleOverflow", servo = "crate::values::computed::Overflow" },
499     { gecko = "StyleOverflowAnchor", servo = "crate::values::computed::OverflowAnchor" },
500     { gecko = "StyleTextDecorationSkipInk", servo = "crate::values::computed::TextDecorationSkipInk" },
501     { gecko = "StyleTextDecorationLength", servo = "crate::values::computed::TextDecorationLength" },
502     { gecko = "StyleRubyPosition", servo = "crate::values::computed::RubyPosition" },
503     { gecko = "StyleLength", servo = "crate::values::computed::CSSPixelLength" },
504     { gecko = "StyleLengthPercentage", servo = "crate::values::computed::LengthPercentage" },
505     { gecko = "StyleNonNegativeLengthPercentage", servo = "crate::values::computed::NonNegativeLengthPercentage" },
506     { gecko = "StyleGenericLengthPercentageOrAuto", servo = "crate::values::generics::length::LengthPercentageOrAuto" },
507     { gecko = "StyleGenericLengthPercentageOrNormal", servo = "crate::values::generics::length::LengthPercentageOrNormal" },
508     { gecko = "StyleLengthPercentageOrAuto", servo = "crate::values::computed::LengthPercentageOrAuto" },
509     { gecko = "StyleNonNegativeLengthPercentageOrAuto", servo = "crate::values::computed::NonNegativeLengthPercentageOrAuto" },
510     { gecko = "StyleRect", servo = "crate::values::generics::rect::Rect" },
511     { gecko = "StyleIntersectionObserverRootMargin", servo = "crate::values::specified::gecko::IntersectionObserverRootMargin" },
512     { gecko = "StyleGenericSize", servo = "crate::values::generics::length::Size" },
513     { gecko = "StyleGenericMaxSize", servo = "crate::values::generics::length::MaxSize" },
514     { gecko = "StyleGenericFlexBasis", servo = "crate::values::generics::flex::FlexBasis" },
515     { gecko = "StyleSize", servo = "crate::values::computed::Size" },
516     { gecko = "StyleMaxSize", servo = "crate::values::computed::MaxSize" },
517     { gecko = "StyleFlexBasis", servo = "crate::values::computed::FlexBasis" },
518     { gecko = "StylePosition", servo = "crate::values::computed::Position" },
519     { gecko = "StylePositionOrAuto", servo = "crate::values::computed::PositionOrAuto" },
520     { gecko = "StyleGenericPositionOrAuto", servo = "crate::values::generics::position::PositionOrAuto" },
521     { gecko = "StyleBackgroundSize", servo = "crate::values::computed::BackgroundSize" },
522     { gecko = "StyleGenericBackgroundSize", servo = "crate::values::generics::background::BackgroundSize" },
523     { gecko = "StyleBorderImageSlice", servo = "crate::values::computed::BorderImageSlice" },
524     { gecko = "StyleGenericLengthOrNumber", servo = "crate::values::generics::length::LengthOrNumber" },
525     { gecko = "StyleCSSPixelLength", servo = "crate::values::computed::length::CSSPixelLength" },
526     { gecko = "StyleNonNegativeLength", servo = "crate::values::computed::NonNegativeLength" },
527     { gecko = "StyleNonNegativeNumber", servo = "crate::values::computed::NonNegativeNumber" },
528     { gecko = "StyleZeroToOneNumber", servo = "crate::values::computed::ZeroToOneNumber" },
529     { gecko = "StylePercentage", servo = "crate::values::computed::Percentage" },
530     { gecko = "StylePerspective", servo = "crate::values::computed::Perspective" },
531     { gecko = "StyleGenericPerspective", servo = "crate::values::generics::box_::Perspective" },
532     { gecko = "StyleZIndex", servo = "crate::values::computed::ZIndex" },
533     { gecko = "StyleGenericZIndex", servo = "crate::values::generics::position::ZIndex" },
534     { gecko = "StyleTransformBox", servo = "crate::values::computed::TransformBox" },
535     { gecko = "StyleTransformOrigin", servo = "crate::values::computed::TransformOrigin" },
536     { gecko = "StyleTransformStyle", servo = "crate::values::computed::TransformStyle" },
537     { gecko = "StyleGenericBorderRadius", servo = "crate::values::generics::border::BorderRadius" },
538     { gecko = "StyleLetterSpacing", servo = "crate::values::computed::text::LetterSpacing" },
539     { gecko = "StyleGenericLineHeight", servo = "crate::values::generics::font::LineHeight" },
540     { gecko = "StyleCaretColor", servo = "crate::values::computed::color::CaretColor" },
541     { gecko = "StyleContain", servo = "crate::values::computed::Contain" },
542     { gecko = "StyleContainerType", servo = "crate::values::computed::ContainerType" },
543     { gecko = "StyleContainerName", servo = "crate::values::computed::ContainerName" },
544     { gecko = "StyleRestyleHint", servo = "crate::invalidation::element::restyle_hints::RestyleHint" },
545     { gecko = "StyleTouchAction", servo = "crate::values::computed::TouchAction" },
546     { gecko = "StyleWillChange", servo = "crate::values::specified::box_::WillChange" },
547     { gecko = "StyleColorScheme", servo = "crate::values::specified::color::ColorScheme" },
548     { gecko = "StyleTextDecorationLine", servo = "crate::values::computed::TextDecorationLine" },
549     { gecko = "StyleMasonryAutoFlow", servo = "crate::values::specified::MasonryAutoFlow" },
550     { gecko = "StyleMasonryPlacement", servo = "crate::values::specified::MasonryPlacement" },
551     { gecko = "StyleMasonryItemOrder", servo = "crate::values::specified::MasonryItemOrder" },
552     { gecko = "StyleTextTransform", servo = "crate::values::computed::TextTransform" },
553     { gecko = "StyleTextUnderlinePosition", servo = "crate::values::computed::TextUnderlinePosition" },
554     { gecko = "StyleStrong", servo = "crate::gecko_bindings::sugar::ownership::Strong" },
555     { gecko = "StyleGenericFontFamily", servo = "crate::values::computed::font::GenericFontFamily" },
556     { gecko = "StyleGenericPosition", servo = "crate::values::generics::position::GenericPosition" },
557     { gecko = "StyleGenericCounterPair", servo = "crate::values::generics::counters::GenericCounterPair" },
558     { gecko = "StyleGenericShapeRadius", servo = "crate::values::generics::basic_shape::GenericShapeRadius" },
559     { gecko = "StyleGenericClipRect", servo = "crate::values::generics::GenericClipRect" },
560     { gecko = "StyleGenericCursorImage", servo = "crate::values::generics::ui::GenericCursorImage" },
561     { gecko = "StyleFontFamily", servo = "crate::values::computed::font::FontFamily" },
562     { gecko = "StyleFontSizeAdjust", servo = "crate::values::computed::font::FontSizeAdjust" },
563     { gecko = "StyleFontFamilyNameSyntax", servo = "crate::values::computed::font::FontFamilyNameSyntax" },
564     { gecko = "StyleGenericColor", servo = "crate::values::generics::color::Color" },
565     { gecko = "StyleSystemColor", servo = "crate::values::specified::color::SystemColor" },
566     { gecko = "StyleSystemFont", servo = "crate::values::specified::font::SystemFont" },
567     { gecko = "StyleGenericColorOrAuto", servo = "crate::values::generics::color::ColorOrAuto" },
568     { gecko = "StyleGenericScrollbarColor", servo = "crate::values::generics::ui::ScrollbarColor" },
569     { gecko = "StyleAbsoluteColor", servo = "crate::color::AbsoluteColor" },
570     { gecko = "StyleOrigin", servo = "crate::stylesheets::Origin" },
571     { gecko = "StyleGenericVerticalAlign", servo = "crate::values::generics::box_::VerticalAlign" },
572     { gecko = "StyleVerticalAlignKeyword", servo = "crate::values::generics::box_::VerticalAlignKeyword" },
573     { gecko = "StyleGenericBasicShape", servo = "crate::values::generics::basic_shape::BasicShape" },
574     { gecko = "StyleBasicShape", servo = "crate::values::computed::basic_shape::BasicShape" },
575     { gecko = "StyleGenericInsetRect", servo = "crate::values::generics::basic_shape::InsetRect" },
576     { gecko = "StyleInsetRect", servo = "crate::values::computed::basic_shape::InsetRect" },
577     { gecko = "StyleArcSlice", servo = "style_traits::arc_slice::ArcSlice" },
578     { gecko = "StyleForgottenArcSlicePtr", servo = "style_traits::arc_slice::ForgottenArcSlicePtr" },
579     { gecko = "StyleOwnedSlice", servo = "style_traits::owned_slice::OwnedSlice" },
580     { gecko = "StyleMozContextProperties", servo = "crate::values::specified::svg::MozContextProperties" },
581     { gecko = "StyleQuotes", servo = "crate::values::specified::list::Quotes" },
582     { gecko = "StyleOwnedStr", servo = "style_traits::owned_str::OwnedStr" },
583     { gecko = "StyleGenericBoxShadow", servo = "crate::values::generics::effects::BoxShadow" },
584     { gecko = "StyleGenericSimpleShadow", servo = "crate::values::generics::effects::SimpleShadow" },
585     { gecko = "StyleGenericTransformOperation", servo = "crate::values::generics::transform::TransformOperation" },
586     { gecko = "StyleGenericTransform", servo = "crate::values::generics::transform::Transform" },
587     { gecko = "StyleGenericScale", servo = "crate::values::generics::transform::Scale" },
588     { gecko = "StyleGenericRotate", servo = "crate::values::generics::transform::Rotate" },
589     { gecko = "StyleGenericTranslate", servo = "crate::values::generics::transform::Translate" },
590     { gecko = "StyleAngle", servo = "crate::values::computed::Angle" },
591     { gecko = "StyleGenericBorderImageSideWidth", servo = "crate::values::generics::border::BorderImageSideWidth" },
592     { gecko = "StyleGenericUrlOrNone", servo = "crate::values::generics::url::UrlOrNone" },
593     { gecko = "StyleGenericCalcNode", servo = "crate::values::generics::calc::GenericCalcNode" },
594     { gecko = "StyleCssUrl", servo = "crate::gecko::url::CssUrl" },
595     { gecko = "StyleSpecifiedUrl", servo = "crate::gecko::url::SpecifiedUrl" },
596     { gecko = "StyleSpecifiedImageUrl", servo = "crate::gecko::url::SpecifiedImageUrl" },
597     { gecko = "StyleComputedUrl", servo = "crate::gecko::url::ComputedUrl" },
598     { gecko = "StyleComputedImageUrl", servo = "crate::gecko::url::ComputedImageUrl" },
599     { gecko = "StyleLoadData", servo = "crate::gecko::url::LoadData" },
600     { gecko = "StyleGenericFilter", servo = "crate::values::generics::effects::Filter" },
601     { gecko = "StyleGenericGradient", servo = "crate::values::generics::image::Gradient" },
602     { gecko = "StyleLineDirection", servo = "crate::values::computed::image::LineDirection" },
603     { gecko = "StyleGridTemplateAreas", servo = "crate::values::computed::position::GridTemplateAreas" },
604     { gecko = "StyleGenericGridLine", servo = "crate::values::generics::grid::GridLine" },
605     { gecko = "StyleGenericTrackSize", servo = "crate::values::generics::grid::TrackSize" },
606     { gecko = "StyleGenericTrackBreadth", servo = "crate::values::generics::grid::TrackBreadth" },
607     { gecko = "StyleGenericImplicitGridTracks", servo = "crate::values::generics::grid::ImplicitGridTracks" },
608     { gecko = "StyleImplicitGridTracks", servo = "crate::values::computed::ImplicitGridTracks" },
609     { gecko = "StyleNumberOrPercentage", servo = "crate::values::computed::NumberOrPercentage" },
610     { gecko = "StyleGenericSVGPaint", servo = "crate::values::generics::svg::SVGPaint" },
611     { gecko = "StyleGenericTrackRepeat", servo = "crate::values::generics::grid::TrackRepeat" },
612     { gecko = "StyleGenericTrackListValue", servo = "crate::values::generics::grid::TrackListValue" },
613     { gecko = "StyleGenericTrackList", servo = "crate::values::generics::grid::TrackList" },
614     { gecko = "StyleGenericGridTemplateComponent", servo = "crate::values::generics::grid::GridTemplateComponent" },
615     { gecko = "StyleTextEmphasisStyle", servo = "crate::values::computed::text::TextEmphasisStyle" },
616     { gecko = "StyleTextEmphasisPosition", servo = "crate::values::computed::TextEmphasisPosition" },
617     { gecko = "StyleFontVariantAlternates", servo = "crate::values::specified::font::FontVariantAlternates" },
618     { gecko = "StyleSVGPaintOrder", servo = "crate::values::specified::svg::SVGPaintOrder" },
619     { gecko = "StyleClipRectOrAuto", servo = "crate::values::computed::ClipRectOrAuto" },
620     { gecko = "StyleCounterReset", servo = "crate::values::computed::CounterReset" },
621     { gecko = "StyleCounterSet", servo = "crate::values::computed::CounterSet" },
622     { gecko = "StyleCounterIncrement", servo = "crate::values::computed::CounterIncrement" },
623     { gecko = "StyleContent", servo = "crate::values::computed::counters::Content" },
624     { gecko = "StyleSymbolsType", servo = "crate::values::generics::SymbolsType" },
625     { gecko = "StyleCounterStyle", servo = "crate::values::generics::CounterStyle" },
626     { gecko = "StyleComputedJustifyItems", servo = "crate::values::computed::align::ComputedJustifyItems" },
627     { gecko = "StyleAlignItems", servo = "crate::values::computed::AlignItems" },
628     { gecko = "StyleJustifySelf", servo = "crate::values::computed::JustifySelf" },
629     { gecko = "StyleAlignSelf", servo = "crate::values::computed::AlignSelf" },
630     { gecko = "StyleAlignContent", servo = "crate::values::computed::align::AlignContent" },
631     { gecko = "StyleJustifyTracks", servo = "crate::values::computed::align::JustifyTracks" },
632     { gecko = "StyleAlignTracks", servo = "crate::values::computed::align::AlignTracks" },
633     { gecko = "StyleJustifyContent", servo = "crate::values::computed::align::JustifyContent" },
634     { gecko = "StyleComputedValueFlags", servo = "crate::computed_value_flags::ComputedValueFlags" },
635     { gecko = "StyleImage", servo = "crate::values::computed::Image" },
636     { gecko = "StyleShapeOutside", servo = "crate::values::computed::basic_shape::ShapeOutside" },
637     { gecko = "StyleClipPath", servo = "crate::values::computed::basic_shape::ClipPath" },
638     { gecko = "StyleGridAutoFlow", servo = "crate::values::computed::GridAutoFlow" },
639     { gecko = "StyleCursor", servo = "crate::values::computed::Cursor" },
640     { gecko = "StyleSVGStrokeDashArray", servo = "crate::values::computed::svg::SVGStrokeDashArray" },
641     { gecko = "StyleSVGWidth", servo = "crate::values::computed::svg::SVGWidth" },
642     { gecko = "StyleSVGOpacity", servo = "crate::values::computed::svg::SVGOpacity" },
643     { gecko = "StyleSVGLength", servo = "crate::values::computed::svg::SVGLength" },
644     { gecko = "StyleFontSizeKeyword", servo = "crate::values::specified::font::FontSizeKeyword" },
645     { gecko = "StyleCaptionSide", servo = "crate::values::computed::table::CaptionSide" },
646     { gecko = "StylePageName", servo = "crate::values::specified::page::PageName" },
647     { gecko = "StylePageOrientation", servo = "crate::values::generics::page::PageOrientation" },
648     { gecko = "StylePageSize", servo = "crate::values::computed::page::PageSize" },
649     { gecko = "StyleDProperty", servo = "crate::values::specified::svg::DProperty" },
650     { gecko = "StyleImageRendering", servo = "crate::values::computed::ImageRendering" },
651     { gecko = "StylePrintColorAdjust", servo = "crate::values::computed::PrintColorAdjust" },
652     { gecko = "StyleForcedColorAdjust", servo = "crate::values::computed::ForcedColorAdjust" },
653     { gecko = "StyleScrollbarGutter", servo = "crate::values::computed::ScrollbarGutter" },
654     { gecko = "StyleHyphenateCharacter", servo = "crate::values::computed::HyphenateCharacter" },
655     { gecko = "StyleContentVisibility", servo = "crate::values::computed::ContentVisibility" },
656     { gecko = "StyleContainIntrinsicSize", servo = "crate::values::computed::ContainIntrinsicSize" },
657     { gecko = "StyleFontStyle", servo = "crate::values::computed::font::FontStyle" },
658     { gecko = "StyleFontWeight", servo = "crate::values::computed::font::FontWeight" },
659     { gecko = "StyleFontStretch", servo = "crate::values::computed::font::FontStretch" },
660     { gecko = "StyleFontPalette", servo = "crate::values::computed::font::FontPalette" },
661     { gecko = "StyleFontSynthesis", servo = "crate::values::computed::font::FontSynthesis" },
662     { gecko = "StyleBoolInteger", servo = "crate::values::computed::BoolInteger" },
663     { gecko = "StyleTime", servo = "crate::values::computed::Time" },
664     { gecko = "StyleXTextScale", servo = "crate::values::computed::XTextScale" },
665     { gecko = "StyleZoom", servo = "crate::values::computed::Zoom" },
666     { gecko = "StyleTransitionProperty", servo = "crate::values::computed::TransitionProperty" },
667     { gecko = "StyleAnimationValueMap", servo = "crate::properties::animated_properties::AnimationValueMap" },
668     { gecko = "StyleAuthorStyles", servo = "crate::gecko::data::AuthorStyles" },
669     { gecko = "StyleUseCounters", servo = "crate::use_counters::UseCounters" },
670     { gecko = "StyleStylesheetContents", servo = "crate::stylesheets::StylesheetContents" },
671     { gecko = "StyleAnimationValue", servo = "crate::properties::animated_properties::AnimationValue" },
672     { gecko = "StyleLockedDeclarationBlock", servo = "crate::gecko::arc_types::LockedDeclarationBlock" },
673     { gecko = "StyleLockedMediaList", servo = "crate::gecko::arc_types::LockedMediaList" },
674     { gecko = "StyleLockedImportRule", servo = "crate::gecko::arc_types::LockedImportRule" },
675     { gecko = "StyleLockedFontFaceRule", servo = "crate::gecko::arc_types::LockedFontFaceRule" },
676     { gecko = "StyleBaselineSource", servo = "crate::values::computed::BaselineSource" },
677     { gecko = "StyleAu", servo = "app_units::Au" },
680 mapped-generic-types = [
681     { generic = true, gecko = "mozilla::RustCell", servo = "::std::cell::Cell" },
682     { generic = false, gecko = "ServoNodeData", servo = "atomic_refcell::AtomicRefCell<crate::data::ElementData>" },
683     { generic = false, gecko = "mozilla::ServoWritingMode", servo = "crate::logical_geometry::WritingMode" },
684     { generic = false, gecko = "mozilla::ServoComputedCustomProperties", servo = "crate::custom_properties::ComputedCustomProperties" },
685     { generic = false, gecko = "mozilla::ServoRuleNode", servo = "Option<crate::rule_tree::StrongRuleNode>" },
686     { generic = false, gecko = "nsACString", servo = "nsstring::nsACString" },
687     { generic = false, gecko = "nsAString", servo = "nsstring::nsAString" },
688     { generic = false, gecko = "nsCString", servo = "nsstring::nsCString" },
689     { generic = false, gecko = "nsString", servo = "nsstring::nsString" },
692 allowlist-functions = ["Servo_.*", "Gecko_.*"]