DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598
[structs]
headers = [
    "nsStyleStruct.h",
    "mozilla/StyleAnimationValue.h",
    "gfxFontConstants.h",
    "gfxFontFeatures.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/ShadowRoot.h",
    "mozilla/ipc/ByteBuf.h",
    "mozilla/AnimationPropertySegment.h",
    "mozilla/ComputedTiming.h",
    "mozilla/ComputedTimingFunction.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/ServoTraversalStatistics.h",
    "mozilla/SizeOfState.h",
    "nsCSSProps.h",
    "nsContentUtils.h",
    "nsNameSpaceManager.h",
    "nsMediaFeatures.h",
    "GeckoProfiler.h",
]
raw-lines = [
    # FIXME(emilio): Incrementally remove these "pub use"s. Probably
    # mozilla::css and mozilla::dom are easier.
    "pub use self::root::*;",
    "pub use self::root::mozilla::*;",
    "pub use self::root::mozilla::css::*;",
    "pub use self::root::mozilla::dom::*;",
    "use atomic_refcell::AtomicRefCell;",
    "use data::ElementData;",
]
hide-types = [
    ".*char_traits",
    ".*incompatible_char_type",
    # https://github.com/rust-lang/rust-bindgen/issues/1503
    "mozilla::StyleTimingFunction.*",
    # https://github.com/rust-lang/rust-bindgen/issues/1559
    "mozilla::StyleGenericTransformOperation_.*",
]
bitfield-enums = [
    "nsChangeHint",
    "mozilla::OriginFlags",
    "mozilla::StyleTextUnderlinePosition",
]
rusty-enums = [
    "nsCompatibility",
    "mozilla::EffectCompositor_CascadeLevel",
    "mozilla::SheetType",
    "mozilla::dom::CallerType",
    "mozilla::dom::IterationCompositeOperation",
    "mozilla::dom::CompositeOperation",
    "mozilla::InheritTarget",
    "mozilla::css::DocumentMatchingFunction",
    "mozilla::css::SheetParsingMode",
    "nsStyleSVGOpacitySource",
    "mozilla::dom::Document_DocumentTheme",
    "mozilla::dom::Document_Type",
    "nsCSSUnit",
    "nsCSSFontDesc",
    "nsCSSPropertyID",
    "nsCSSCounterDesc",
    "nsMediaFeature_RangeType",
    "nsMediaFeature_ValueType",
    "nsresult",
    "nsAtom_AtomKind",
    "nsStyleImageLayers_LayerType",
    "mozilla::ServoElementSnapshotFlags",
    "mozilla::Side",
    "mozilla::dom::PlaybackDirection",
    "mozilla::dom::FillMode",
    "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::StyleImageRendering",
    "mozilla::StyleUserModify",
    "mozilla::StyleUserInput",
    "mozilla::StyleBoxDirection",
    "mozilla::StyleTextJustify",
    "mozilla::StyleRubyAlign",
    "mozilla::StyleTextSizeAdjust",
    "mozilla::StyleHyphens",
    "mozilla::StyleRubyPosition",
    "mozilla::StyleShapeSourceType",
    "mozilla::StyleVisibility",
    "mozilla::StyleBasicShapeType",
    "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::StylePointerEvents",
    "mozilla::StyleScrollbarWidth",
    "mozilla::StyleWhiteSpace",
    "mozilla::StyleTextRendering",
    "mozilla::StyleColorAdjust",
    "mozilla::StyleFlexDirection",
    "mozilla::StyleStrokeLinecap",
    "mozilla::StyleStrokeLinejoin",
    "mozilla::StyleFlexWrap",
    "mozilla::StyleTextDecorationSkipInk",
    "mozilla::StyleTextDecorationLength",
    "mozilla::StyleMaskType",
    "mozilla::StyleShapeRendering",
    "mozilla::StyleTextAnchor",
    "mozilla::StyleObjectFit",
    "mozilla::StyleTopLayer",
    "mozilla::StyleIsolation",
    "mozilla::StyleTextOrientation",
    "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::StyleControlCharacterVisibility",
    "mozilla::StyleFontSize",
]
whitelist-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_.*",
    "nsContentUtils_.*",
    "GECKO_IS_NIGHTLY",
    "mozilla::detail::gGkAtoms",
    "mozilla::detail::kGkAtomsArrayOffset",
    "mozilla::profiler::detail::RacyFeatures::sActiveAndFeatures",
]
# TODO(emilio): A bunch of types here can go away once we generate bindings and
# structs together.
whitelist-types = [
    "RawGecko.*",
    "RawServo.*",
    "ServoCssRules",
    "nsFontFaceRuleContainer",
    "Matrix4x4Components",
    "mozilla::ComputedKeyframeValues",
    "mozilla::Keyframe",
    "mozilla::PropertyValuePair",
    "mozilla::DeclarationBlockMutationClosure",
    "mozilla::AnimationPropertySegment",
    "mozilla::AnonymousCounterStyle",
    "mozilla::AtomArray",
    "mozilla::ComputedTiming",
    "mozilla::ComputedTimingFunction",
    "mozilla::ComputedTimingFunction::BeforeFlag",
    "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::StyleImageLayerAttachment",
    "gfxFontFeature",
    "gfxFontVariation",
    ".*ThreadSafe.*Holder",
    "AnonymousContent",
    "AudioContext",
    "DefaultDelete",
    "DOMIntersectionObserverEntry",
    "Element",
    "FontFamilyList",
    "FontFamilyName",
    "mozilla::FontSizePrefs",
    "FragmentOrURL",
    "FrameRequestCallback",
    "GeckoParserExtraData",
    "GeckoFontMetrics",
    "gfxFontFeatureValueSet",
    "GridNamedArea",
    "mozilla::HalfCorner",
    "Image",
    "ImageURL",
    "Keyframe",
    "mozilla::MediumFeaturesChangedResult",
    "nsAttrName",
    "nsAttrValue",
    "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",
    "nsMediaFeature",
    "nsMediaFeatures",
    "nsRect",
    "nsresult",
    "nsSimpleContentList",
    "nsSize",
    "nsStyleBackground",
    "nsStyleBorder",
    "nsStyleColor",
    "nsStyleColumn",
    "nsStyleContent",
    "nsStyleContentData",
    "ComputedStyle",
    "nsStyleCounterData",
    "nsStyleDisplay",
    "nsStyleEffects",
    "nsStyleFilter",
    "nsStyleFont",
    "nsStyleGradient",
    "nsStyleGridTemplate",
    "nsStyleImage",
    "nsStyleImageLayers",
    "nsStyleList",
    "nsStyleMargin",
    "nsStyleOutline",
    "nsStylePadding",
    "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",
    "mozilla::profiler::detail::RacyFeatures",
]
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",
    "mozilla::Tuple",
    "SupportsWeakPtr",
    "mozilla::detail::WeakReference",
    "mozilla::WeakPtr",
    "nsWritingIterator_reference", "nsReadingIterator_reference",
    "nsTObserverArray",  # <- Inherits from nsAutoTObserverArray<T, 0>
    "nsTHashtable",  # <- Inheriting from inner typedefs that clang
                     #    doesn't expose properly.
    "nsBaseHashtable", "nsRefPtrHashtable", "nsDataHashtable", "nsClassHashtable",  # <- Ditto
    "nsInterfaceHashtable",  # <- 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",
    "gfxSize",  # <- union { struct { T width; T height; }; T components[2] };
    "gfxSize_Super",  # Ditto.
    "mozilla::StyleAnimationValue",
    "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::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 = "StyleAppearance", servo = "values::specified::Appearance" },
    { gecko = "StyleAspectRatio", servo = "values::computed::position::AspectRatio" },
    { gecko = "StyleComputedFontStretchRange", servo = "font_face::ComputedFontStretchRange" },
    { gecko = "StyleComputedFontStyleDescriptor", servo = "font_face::ComputedFontStyleDescriptor" },
    { gecko = "StyleComputedFontWeightRange", servo = "font_face::ComputedFontWeightRange" },
    { gecko = "StyleComputedTimingFunction", servo = "values::computed::easing::TimingFunction" },
    { gecko = "StyleCursorKind", servo = "values::computed::ui::CursorKind" },
    { gecko = "StyleDisplay", servo = "values::specified::Display" },
    { gecko = "StyleDisplayMode", servo = "gecko::media_features::DisplayMode" },
    { gecko = "StylePrefersColorScheme", servo = "gecko::media_features::PrefersColorScheme" },
    { gecko = "StyleExtremumLength", servo = "values::computed::length::ExtremumLength" },
    { gecko = "StyleFillRule", servo = "values::generics::basic_shape::FillRule" },
    { gecko = "StyleFontDisplay", servo = "font_face::FontDisplay" },
    { gecko = "StyleFontFaceSourceListComponent", servo = "font_face::FontFaceSourceListComponent" },
    { gecko = "StyleFontLanguageOverride", servo = "values::computed::font::FontLanguageOverride" },
    { gecko = "StyleOffsetPath", servo = "values::computed::motion::OffsetPath" },
    { gecko = "StyleGenericOffsetPath", servo = "values::generics::motion::OffsetPath" },
    { gecko = "StyleOffsetRotate", servo = "values::computed::motion::OffsetRotate" },
    { gecko = "StylePathCommand", servo = "values::specified::svg_path::PathCommand" },
    { gecko = "StyleRayFunction", servo = "values::generics::motion::RayFunction" },
    { gecko = "StyleUnicodeRange", servo = "cssparser::UnicodeRange" },
    { gecko = "StyleOverflowWrap", servo = "values::computed::OverflowWrap" },
    { gecko = "StyleWordBreak", servo = "values::computed::WordBreak" },
    { gecko = "StyleLineBreak", servo = "values::computed::LineBreak" },
    { gecko = "StyleUserSelect", servo = "values::computed::UserSelect" },
    { gecko = "StyleBreakBetween", servo = "values::computed::BreakBetween" },
    { gecko = "StyleBreakWithin", servo = "values::computed::BreakWithin" },
    { gecko = "StyleBorderStyle", servo = "values::computed::BorderStyle" },
    { gecko = "StyleOutlineStyle", servo = "values::computed::OutlineStyle" },
    { gecko = "StyleScrollSnapAlign", servo = "values::computed::ScrollSnapAlign" },
    { gecko = "StyleScrollSnapStrictness", servo = "values::computed::ScrollSnapStrictness" },
    { gecko = "StyleScrollSnapType", servo = "values::computed::ScrollSnapType" },
    { gecko = "StyleResize", servo = "values::computed::Resize" },
    { gecko = "StyleOverflowClipBox", servo = "values::computed::OverflowClipBox" },
    { gecko = "StyleFloat", servo = "values::computed::Float" },
    { gecko = "StyleOverscrollBehavior", servo = "values::computed::OverscrollBehavior" },
    { gecko = "StyleTextAlign", servo = "values::computed::TextAlign" },
    { gecko = "StyleTextAlignLast", servo = "values::computed::text::TextAlignLast" },
    { gecko = "StyleTextOverflow", servo = "values::computed::TextOverflow" },
    { gecko = "StyleOverflow", servo = "values::computed::Overflow" },
    { gecko = "StyleOverflowAnchor", servo = "values::computed::OverflowAnchor" },
    { gecko = "StyleTextDecorationSkipInk", servo = "values::computed::TextDecorationSkipInk" },
    { gecko = "StyleTextDecorationLength", servo = "values::computed::TextDecorationLength" },
    { gecko = "StyleLength", servo = "values::computed::CSSPixelLength" },
    { gecko = "StyleLengthPercentage", servo = "values::computed::LengthPercentage" },
    { gecko = "StyleNonNegativeLengthPercentage", servo = "values::computed::NonNegativeLengthPercentage" },
    { gecko = "StyleGenericLengthPercentageOrAuto", servo = "values::generics::length::LengthPercentageOrAuto" },
    { gecko = "StyleGenericLengthPercentageOrNormal", servo = "values::generics::length::LengthPercentageOrNormal" },
    { gecko = "StyleLengthPercentageOrAuto", servo = "values::computed::LengthPercentageOrAuto" },
    { gecko = "StyleNonNegativeLengthPercentageOrAuto", servo = "values::computed::NonNegativeLengthPercentageOrAuto" },
    { gecko = "StyleRect", servo = "values::generics::rect::Rect" },
    { gecko = "StyleIntersectionObserverRootMargin", servo = "values::specified::gecko::IntersectionObserverRootMargin" },
    { gecko = "StyleGenericSize", servo = "values::generics::length::Size" },
    { gecko = "StyleGenericMaxSize", servo = "values::generics::length::MaxSize" },
    { gecko = "StyleGenericFlexBasis", servo = "values::generics::flex::FlexBasis" },
    { gecko = "StyleSize", servo = "values::computed::Size" },
    { gecko = "StyleMaxSize", servo = "values::computed::MaxSize" },
    { gecko = "StyleFlexBasis", servo = "values::computed::FlexBasis" },
    { gecko = "StylePosition", servo = "values::computed::Position" },
    { gecko = "StylePositionOrAuto", servo = "values::computed::PositionOrAuto" },
    { gecko = "StyleGenericPositionOrAuto", servo = "values::generics::position::PositionOrAuto" },
    { gecko = "StyleBackgroundSize", servo = "values::computed::BackgroundSize" },
    { gecko = "StyleGenericBackgroundSize", servo = "values::generics::background::BackgroundSize" },
    { gecko = "StyleBorderImageSlice", servo = "values::computed::BorderImageSlice" },
    { gecko = "StyleGenericLengthOrNumber", servo = "values::generics::length::LengthOrNumber" },
    { gecko = "StyleCSSPixelLength", servo = "values::computed::length::CSSPixelLength" },
    { gecko = "StyleNonNegativeLength", servo = "values::computed::NonNegativeLength" },
    { gecko = "StyleNonNegativeNumber", servo = "values::computed::NonNegativeNumber" },
    { gecko = "StyleZeroToOneNumber", servo = "values::computed::ZeroToOneNumber" },
    { gecko = "StylePercentage", servo = "values::computed::Percentage" },
    { gecko = "StylePerspective", servo = "values::computed::Perspective" },
    { gecko = "StyleGenericPerspective", servo = "values::generics::box_::Perspective" },
    { gecko = "StyleZIndex", servo = "values::computed::ZIndex" },
    { gecko = "StyleGenericZIndex", servo = "values::generics::position::ZIndex" },
    { gecko = "StyleTransformOrigin", servo = "values::computed::TransformOrigin" },
    { gecko = "StyleTransformStyle", servo = "values::computed::TransformStyle" },
    { gecko = "StyleGenericBorderRadius", servo = "values::generics::border::BorderRadius" },
    { gecko = "StyleLetterSpacing", servo = "values::computed::text::LetterSpacing" },
    { gecko = "StyleGenericLineHeight", servo = "values::generics::text::LineHeight" },
    { gecko = "StyleContain", servo = "values::computed::Contain" },
    { gecko = "StyleRestyleHint", servo = "invalidation::element::restyle_hints::RestyleHint" },
    { gecko = "StyleTouchAction", servo = "values::computed::TouchAction" },
    { gecko = "StyleWillChange", servo = "values::specified::box_::WillChange" },
    { gecko = "StyleTextDecorationLine", servo = "values::computed::TextDecorationLine" },
    { gecko = "StyleTextTransform", servo = "values::computed::TextTransform" },
    { gecko = "StyleTextUnderlinePosition", servo = "values::computed::TextUnderlinePosition" },
    { gecko = "StyleMozListReversed", servo = "values::computed::MozListReversed" },
    { gecko = "StyleOwned", servo = "gecko_bindings::sugar::ownership::Owned" },
    { gecko = "StyleOwnedOrNull", servo = "gecko_bindings::sugar::ownership::OwnedOrNull" },
    { gecko = "StyleStrong", servo = "gecko_bindings::sugar::ownership::Strong" },
    { gecko = "StyleGenericFontFamily", servo = "values::computed::font::GenericFontFamily" },
    { gecko = "StyleFontFamilyNameSyntax", servo = "values::computed::font::FontFamilyNameSyntax" },
    { gecko = "StyleGenericColor", servo = "values::generics::color::Color" },
    { gecko = "StyleSystemColor", servo = "values::specified::color::SystemColor" },
    { gecko = "StyleGenericColorOrAuto", servo = "values::generics::color::ColorOrAuto" },
    { gecko = "StyleGenericScrollbarColor", servo = "values::generics::ui::ScrollbarColor" },
    { gecko = "StyleRGBA", servo = "cssparser::RGBA" },
    { gecko = "StyleOrigin", servo = "stylesheets::Origin" },
    { gecko = "StyleGenericVerticalAlign", servo = "values::generics::box_::VerticalAlign" },
    { gecko = "StyleVerticalAlignKeyword", servo = "values::generics::box_::VerticalAlignKeyword" },
    { gecko = "StyleGenericBasicShape", servo = "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 = "values::specified::svg::MozContextProperties" },
    { gecko = "StyleQuotes", servo = "values::specified::list::Quotes" },
    { gecko = "StyleOwnedStr", servo = "style_traits::owned_str::OwnedStr" },
    { gecko = "StyleGenericBoxShadow", servo = "values::generics::effects::BoxShadow" },
    { gecko = "StyleGenericSimpleShadow", servo = "values::generics::effects::SimpleShadow" },
    { gecko = "StyleGenericTransformOperation", servo = "values::generics::transform::TransformOperation" },
    { gecko = "StyleGenericTransform", servo = "values::generics::transform::Transform" },
    { gecko = "StyleGenericScale", servo = "values::generics::transform::Scale" },
    { gecko = "StyleGenericRotate", servo = "values::generics::transform::Rotate" },
    { gecko = "StyleGenericTranslate", servo = "values::generics::transform::Translate" },
    { gecko = "StyleAngle", servo = "values::computed::Angle" },
    { gecko = "StyleGenericBorderImageSideWidth", servo = "values::generics::border::BorderImageSideWidth" },
    { gecko = "StyleGenericUrlOrNone", servo = "values::generics::url::UrlOrNone" },
    { gecko = "StyleCssUrl", servo = "gecko::url::CssUrl" },
    { gecko = "StyleSpecifiedUrl", servo = "gecko::url::SpecifiedUrl" },
    { gecko = "StyleSpecifiedImageUrl", servo = "gecko::url::SpecifiedImageUrl" },
    { gecko = "StyleComputedUrl", servo = "gecko::url::ComputedUrl" },
    { gecko = "StyleComputedImageUrl", servo = "gecko::url::ComputedImageUrl" },
    { gecko = "StyleLoadData", servo = "gecko::url::LoadData" },
    { gecko = "StyleGenericFilter", servo = "values::generics::effects::Filter" },
    { gecko = "StyleGenericGradient", servo = "values::generics::image::Gradient" },
    { gecko = "StyleLineDirection", servo = "values::computed::image::LineDirection" },
    { gecko = "StyleGridTemplateAreas", servo = "values::computed::position::GridTemplateAreas" },
    { gecko = "StyleGenericGridLine", servo = "values::generics::grid::GridLine" },
    { gecko = "StyleGenericTrackSize", servo = "values::generics::grid::TrackSize" },
    { gecko = "StyleGenericTrackBreadth", servo = "values::generics::grid::TrackBreadth" },
    { gecko = "StyleGenericImplicitGridTracks", servo = "values::generics::grid::ImplicitGridTracks" },
    { gecko = "StyleImplicitGridTracks", servo = "values::computed::ImplicitGridTracks" },
    { gecko = "StyleNumberOrPercentage", servo = "values::computed::NumberOrPercentage" },
    { gecko = "StyleGenericSVGPaint", servo = "values::generics::svg::SVGPaint" },
    { gecko = "StyleGenericTrackRepeat", servo = "values::generics::grid::TrackRepeat" },
    { gecko = "StyleGenericTrackListValue", servo = "values::generics::grid::TrackListValue" },
    { gecko = "StyleGenericTrackList", servo = "values::generics::grid::TrackList" },
    { gecko = "StyleGenericGridTemplateComponent", servo = "values::generics::grid::GridTemplateComponent" },
    { gecko = "StyleTextEmphasisStyle", servo = "values::computed::text::TextEmphasisStyle" },
    { gecko = "StyleVariantAlternatesList", servo = "values::specified::font::VariantAlternatesList" },
    { gecko = "StyleSVGPaintOrder", servo = "values::specified::svg::SVGPaintOrder" },
    { gecko = "StyleClipRectOrAuto", servo = "values::computed::ClipRectOrAuto" },
    { gecko = "StyleCounterSetOrReset", servo = "values::computed::CounterSetOrReset" },
    { gecko = "StyleCounterIncrement", servo = "values::computed::CounterIncrement" },
    { gecko = "StyleContent", servo = "values::computed::counters::Content" },
    { gecko = "StyleSymbolsType", servo = "values::generics::SymbolsType" },
    { gecko = "StyleCounterStyle", servo = "values::generics::CounterStyle" },
    { gecko = "StyleComputedJustifyItems", servo = "values::computed::align::ComputedJustifyItems" },
    { gecko = "StyleAlignItems", servo = "values::computed::AlignItems" },
    { gecko = "StyleJustifySelf", servo = "values::computed::JustifySelf" },
    { gecko = "StyleAlignSelf", servo = "values::computed::AlignSelf" },
    { gecko = "StyleAlignContent", servo = "values::computed::align::AlignContent" },
    { gecko = "StyleJustifyTracks", servo = "values::computed::align::JustifyTracks" },
    { gecko = "StyleAlignTracks", servo = "values::computed::align::AlignTracks" },
    { gecko = "StyleJustifyContent", servo = "values::computed::align::JustifyContent" },
    { gecko = "StyleComputedValueFlags", servo = "computed_value_flags::ComputedValueFlags" },
    { gecko = "StyleImage", servo = "values::computed::Image" },
    { gecko = "StyleShapeOutside", servo = "values::computed::basic_shape::ShapeOutside" },
    { gecko = "StyleClipPath", servo = "values::computed::basic_shape::ClipPath" },
    { gecko = "StyleGridAutoFlow", servo = "values::computed::GridAutoFlow" },
    { gecko = "StyleCursor", servo = "values::computed::Cursor" },
    { gecko = "StyleSVGStrokeDashArray", servo = "values::computed::svg::SVGStrokeDashArray" },
    { gecko = "StyleSVGWidth", servo = "values::computed::svg::SVGWidth" },
    { gecko = "StyleSVGOpacity", servo = "values::computed::svg::SVGOpacity" },
    { gecko = "StyleSVGLength", servo = "values::computed::svg::SVGLength" },
]

mapped-generic-types = [
    { generic = true, gecko = "mozilla::RustCell", servo = "::std::cell::Cell" },
    { generic = false, gecko = "ServoNodeData", servo = "AtomicRefCell<ElementData>" },
    { generic = false, gecko = "mozilla::ServoWritingMode", servo = "::logical_geometry::WritingMode" },
    { generic = false, gecko = "mozilla::ServoCustomPropertiesMap", servo = "Option<::servo_arc::Arc<::custom_properties::CustomPropertiesMap>>" },
    { generic = false, gecko = "mozilla::ServoRuleNode", servo = "Option<::rule_tree::StrongRuleNode>" },
    { generic = false, gecko = "mozilla::ServoVisitedStyle", servo = "Option<::servo_arc::RawOffsetArc<::properties::ComputedValues>>" },
    { generic = true, gecko = "mozilla::ServoRawOffsetArc", servo = "::servo_arc::RawOffsetArc" },
    { generic = true, gecko = "mozilla::ServoManuallyDrop", servo = "::std::mem::ManuallyDrop" },
    { 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" },
]

whitelist-functions = ["Servo_.*", "Gecko_.*"]