{
  // This file specifies the fields we want to diff in the various diff functions 
  // in ComputedStyle.

  parameters: {
    // The name parameter represents the name of the function to be created.

    fields_to_diff: {
      default: [],
    },

    // A list of methods to diff (these can be public getters of fields or 
    // functions that use fields to determine a value).
    // Each entry is expressed as a dict of two fields:
    // 1. method: the method to be diffed
    // 2. field_dependencies: lists the properties this method depends on.
    methods_to_diff: {
      default: [],
    },

    // A list of predicates that have the diff logic built into them and are only
    // called by the diff functions in ComputedStyle.
    // Each entry is expressed as a dict of two fields:
    // 1. predicate: the predicate to be tested
    // 2. field_dependencies: lists the properties this predicate test depends on.
    // TODO: Note that you also have to pass in the arguments for the predicate. 
    // This may be removed in the future if we are always passing the other ComputedStyle
    predicates_to_test: {
      default: [],
    },
  },
  data: [
    {
        name: "ScrollAnchorDisablingPropertyChanged",
        fields_to_diff: ["width", "min-width", "max-width", "height", "min-height", "max-height", "margin-top", "margin-left", "margin-right", "margin-bottom", 
                  "left", "right", "top", "bottom", "padding-top", 
                  "padding-left", "padding-right", "padding-bottom"],
        methods_to_diff: [
          {
            method: "GetPosition()",
            field_dependencies: ["position"]
          },
        ]
    },
    {
        name: "DiffNeedsFullLayoutAndPaintInvalidation",
        fields_to_diff: ["padding-top", "padding-left", "padding-right", 
                "padding-bottom", "-webkit-highlight", "text-indent", 
                "text-align-last", "TextIndentLine", "EffectiveZoom", 
                "word-break", "overflow-wrap", "-webkit-line-break", 
                "-webkit-text-security", "hyphens", "HyphenationLimitBefore", 
                "HyphenationLimitAfter", "-webkit-hyphenate-character", 
                "RespectImageOrientation", "-webkit-ruby-position", 
                "TextEmphasisMark", "TextEmphasisPosition", 
                "TextEmphasisCustomMark", "text-justify", "text-orientation", 
                "text-combine-upright", "tab-size", "text-size-adjust", 
                "list-style-image", "line-height-step", 
                "-webkit-text-stroke-width", "line-height", "font", 
                "-webkit-border-horizontal-spacing", 
                "-webkit-border-vertical-spacing", "TextAutosizingMultiplier"],
        methods_to_diff: [
          {
            method: "BorderLeftWidth()",
            field_dependencies: ["border-left-width"]
          },
          {
            method: "BorderTopWidth()",
            field_dependencies: ["border-top-width"]
          },
          {
            method: "BorderBottomWidth()",
            field_dependencies: ["border-bottom-width"]
          },
          {
            method: "BorderRightWidth()",
            field_dependencies: ["border-right-width"]
          },
          {
            method: "FontInternal().LoadingCustomFonts()",
            field_dependencies: ["font"]
          },
          {
            method: "HasPseudoStyle(kPseudoIdScrollbar)",
            field_dependencies: ["StyleType"]
          },
          {
            method: "BoxDirection()",
            field_dependencies: ["-webkit-box-direction"]
          },
          {
            method: "RtlOrdering()",
            field_dependencies: ["-webkit-rtl-ordering"]
          },
          {
            method: "GetTextAlign()",
            field_dependencies: ["text-align"]
          },
          {
            method: "TextTransform()",
            field_dependencies: ["text-transform"]
          },
          {
            method: "Direction()",
            field_dependencies: ["direction"]
          },
          {
            method: "WhiteSpace()",
            field_dependencies: ["white-space"]
          },
          {
            method: "GetWritingMode()",
            field_dependencies: ["writing-mode"]
          },
          {
            method: "OverflowX()",
            field_dependencies: ["overflow-x"]
          },
          {
            method: "OverflowY()",
            field_dependencies: ["overflow-y"]
          },
          {
            method: "Clear()",
            field_dependencies: ["clear"]
          },
          {
            method: "GetUnicodeBidi()",
            field_dependencies: ["unicode-bidi"]
          },
          {
            method: "Floating()",
            field_dependencies: ["float"]
          },
          {
            method: "OriginalDisplay()",
            field_dependencies: ["OriginalDisplay"]
          }
        ],
        predicates_to_test: [
          {
            predicate: "a.TextShadowDataEquivalent(b)",
            field_dependencies: ["text-shadow"]
          },
          {
            predicate: "a.QuotesDataEquivalent(b)",
            field_dependencies: ["quotes"]
          },
        ]
    },
    {
        name: "DiffNeedsFullLayoutAndPaintInvalidationDisplayTableType",
        methods_to_diff: [
          {
            method: "BorderCollapse()",
            field_dependencies: ["border-collapse"]
          },
          {
            method: "EmptyCells()",
            field_dependencies: ["empty-cells"]
          },
          {
            method: "CaptionSide()",
            field_dependencies: ["caption-side"]
          },
          {
            method: "TableLayout()",
            field_dependencies: ["table-layout"]
          },
        ]
    },
    {
        name: "DiffNeedsFullLayoutAndPaintInvalidationDisplayListItem",
        methods_to_diff: [
          {
            method: "ListStyleType()",
            field_dependencies: ["list-style-type"]
          },
          {
            method: "ListStylePosition()",
            field_dependencies: ["list-style-position"]
          },
        ]
    },
    {
        name: "DiffNeedsFullLayout",
        fields_to_diff: ["width", "min-width", "max-width", "height", "min-height", "max-height", "box-sizing"]
    },
    {
        name: "DiffNeedsPaintInvalidationObject",
        fields_to_diff: ["-webkit-user-modify", "user-select", "image-rendering"],
        methods_to_diff: [
          {
            method: "Visibility()",
            field_dependencies: ["visibility"]
          },
          {
            method: "PrintColorAdjust()",
            field_dependencies: ["-webkit-print-color-adjust"]
          },
          {
            method: "InsideLink()",
            field_dependencies: ["InsideLink"]
          }
        ]
    },
    {
        name: "DiffNeedsVisualRectUpdate",
        methods_to_diff: [
          {
            method: "Visibility()",
            field_dependencies: ["visibility"]
          }
        ]
    },
    {
        name: "UpdatePropertySpecificDifferencesTextDecorationOrColor",
        fields_to_diff: ["TextEmphasisFill", "text-underline-position", "text-decoration-skip", "AppliedTextDecorations"],
        methods_to_diff: [
          {
            method: "TextFillColor()",
            field_dependencies: ["-webkit-text-fill-color"]
          },
          {
            method: "TextStrokeColor()",
            field_dependencies: ["-webkit-text-stroke-color"]
          },
          {
            method: "TextEmphasisColor()",
            field_dependencies: ["-webkit-text-emphasis-color"]
          },
          {
            method: "VisitedLinkTextFillColor()",
            field_dependencies: ["VisitedLinkTextFillColor"]
          },
          {
            method: "VisitedLinkTextStrokeColor()",
            field_dependencies: ["VisitedLinkTextStrokeColor"]
          },
          {
            method: "VisitedLinkTextEmphasisColor()",
            field_dependencies: ["VisitedLinkTextEmphasisColor"]
          },
          {
            method: "CaretColor()",
            field_dependencies: ["caret-color"]
          },
          {
            method: "VisitedLinkCaretColor()",
            field_dependencies: ["VisitedLinkCaretColor"]
          },
        ]
    },
  ],
}
