LCOV - code coverage report
Current view: top level - layout/generic - nsFrameStateBits.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 155 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : /* a list of all frame state bits, for preprocessing */
       7             : 
       8             : /******
       9             : 
      10             :   This file contains definitions for frame state bits -- values used
      11             :   in nsIFrame::mState -- and groups of frame state bits and which
      12             :   classes they apply to.
      13             : 
      14             :   There are two macros that can be defined before #including this
      15             :   file:
      16             : 
      17             :   FRAME_STATE_GROUP(name_, class_)
      18             : 
      19             :     This denotes the existence of a named group of frame state bits.
      20             :     name_ is the name of the group and class_ is the name of a frame
      21             :     class that uses the frame state bits that are a part of the group.
      22             : 
      23             :     The main group of frame state bits is named "Generic" and is
      24             :     defined to apply to nsIFrame, i.e. all frames.  All of the global
      25             :     frame state bits -- bits 0..19 and 32..59 -- are in this group.
      26             : 
      27             :   FRAME_STATE_BIT(group_, value_, name_)
      28             : 
      29             :     This denotes the existence of a frame state bit.  group_ indicates
      30             :     which group the bit belongs to, value_ is the bit number (0..63),
      31             :     and name_ is the name of the frame state bit constant.
      32             : 
      33             :   Note that if you add a new frame state group, you'll need to #include
      34             :   the header for its frame classes in nsFrameState.cpp and, if they don't
      35             :   already, add nsQueryFrame implementations (which can be DEBUG-only) to
      36             :   the frame classes.
      37             : 
      38             :  ******/
      39             : 
      40             : #ifndef FRAME_STATE_GROUP
      41             : #define FRAME_STATE_GROUP(name_, class_) /* nothing */
      42             : #define DEFINED_FRAME_STATE_GROUP
      43             : #endif
      44             : 
      45             : #ifndef FRAME_STATE_BIT
      46             : #define FRAME_STATE_BIT(group_, value_, name_) /* nothing */
      47             : #define DEFINED_FRAME_STATE_BIT
      48             : #endif
      49             : 
      50             : // == Frame state bits that apply to all frames ===============================
      51             : 
      52           0 : FRAME_STATE_GROUP(Generic, nsIFrame)
      53             : 
      54             : // This bit is set when the frame is actively being reflowed. It is set in many
      55             : // frames' Reflow() by calling MarkInReflow() and unset in DidReflow().
      56           0 : FRAME_STATE_BIT(Generic, 0, NS_FRAME_IN_REFLOW)
      57             : 
      58             : // This bit is set when a frame is created. After it has been reflowed
      59             : // once (during the DidReflow with a finished state) the bit is
      60             : // cleared.
      61           0 : FRAME_STATE_BIT(Generic, 1, NS_FRAME_FIRST_REFLOW)
      62             : 
      63             : // For a continuation frame, if this bit is set, then this a "fluid"
      64             : // continuation, i.e., across a line boundary. Otherwise it's a "hard"
      65             : // continuation, e.g. a bidi continuation.
      66           0 : FRAME_STATE_BIT(Generic, 2, NS_FRAME_IS_FLUID_CONTINUATION)
      67             : 
      68             : // For nsIAnonymousContentCreator content that's created using ContentInfo.
      69           0 : FRAME_STATE_BIT(Generic, 3, NS_FRAME_ANONYMOUSCONTENTCREATOR_CONTENT)
      70             : 
      71             : // If this bit is set, then a reference to the frame is being held
      72             : // elsewhere.  The frame may want to send a notification when it is
      73             : // destroyed to allow these references to be cleared.
      74           0 : FRAME_STATE_BIT(Generic, 4, NS_FRAME_EXTERNAL_REFERENCE)
      75             : 
      76             : // If this bit is set, this frame or one of its descendants has a
      77             : // percentage block-size that depends on an ancestor of this frame.
      78             : // (Or it did at one point in the past, since we don't necessarily clear
      79             : // the bit when it's no longer needed; it's an optimization.)
      80           0 : FRAME_STATE_BIT(Generic, 5, NS_FRAME_CONTAINS_RELATIVE_BSIZE)
      81             : 
      82             : // If this bit is set, then the frame corresponds to generated content
      83           0 : FRAME_STATE_BIT(Generic, 6, NS_FRAME_GENERATED_CONTENT)
      84             : 
      85             : // If this bit is set the frame is a continuation that is holding overflow,
      86             : // i.e. it is a next-in-flow created to hold overflow after the box's
      87             : // height has ended. This means the frame should be a) at the top of the
      88             : // page and b) invisible: no borders, zero height, ignored in margin
      89             : // collapsing, etc. See nsContainerFrame.h
      90           0 : FRAME_STATE_BIT(Generic, 7, NS_FRAME_IS_OVERFLOW_CONTAINER)
      91             : 
      92             : // If this bit is set, then the frame has been moved out of the flow,
      93             : // e.g., it is absolutely positioned or floated
      94           0 : FRAME_STATE_BIT(Generic, 8, NS_FRAME_OUT_OF_FLOW)
      95             : 
      96             : // Frame can be an abs/fixed pos. container, if its style says so.
      97             : // MarkAs[Not]AbsoluteContainingBlock will assert that this bit is set.
      98             : // NS_FRAME_HAS_ABSPOS_CHILDREN must not be set when this bit is unset.
      99           0 : FRAME_STATE_BIT(Generic, 9, NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN)
     100             : 
     101             : // If this bit is set, then the frame and _all_ of its descendant frames need
     102             : // to be reflowed.
     103             : // This bit is set when the frame is first created.
     104             : // This bit is cleared by DidReflow after the required call to Reflow has
     105             : // finished.
     106             : // Do not set this bit yourself if you plan to pass the frame to
     107             : // nsIPresShell::FrameNeedsReflow.  Pass the right arguments instead.
     108           0 : FRAME_STATE_BIT(Generic, 10, NS_FRAME_IS_DIRTY)
     109             : 
     110             : // If this bit is set then the frame is too deep in the frame tree, and
     111             : // we'll stop updating it and its children, to prevent stack overflow
     112             : // and the like.
     113           0 : FRAME_STATE_BIT(Generic, 11, NS_FRAME_TOO_DEEP_IN_FRAME_TREE)
     114             : 
     115             : // If this bit is set, then either:
     116             : //  1. the frame has at least one child that has the NS_FRAME_IS_DIRTY bit or
     117             : //     NS_FRAME_HAS_DIRTY_CHILDREN bit set, or
     118             : //  2. the frame has had at least one child removed since the last reflow, or
     119             : //  3. the frame has had a style change that requires the frame to be reflowed
     120             : //     but does not _necessarily_ require its descendants to be reflowed (e.g.,
     121             : //     for a 'height', 'width', 'margin', etc. change, it's up to the
     122             : //     applicable Reflow methods to decide whether the frame's children
     123             : //     _actually_ need to be reflowed).
     124             : // If this bit is set but the NS_FRAME_IS_DIRTY is not set, then Reflow still
     125             : // needs to be called on the frame, but Reflow will likely not do as much work
     126             : // as it would if NS_FRAME_IS_DIRTY were set. See the comment documenting
     127             : // nsFrame::Reflow for more.
     128             : // This bit is cleared by DidReflow after the required call to Reflow has
     129             : // finished.
     130             : // Do not set this bit yourself if you plan to pass the frame to
     131             : // nsIPresShell::FrameNeedsReflow.  Pass the right arguments instead.
     132           0 : FRAME_STATE_BIT(Generic, 12, NS_FRAME_HAS_DIRTY_CHILDREN)
     133             : 
     134             : // If this bit is set, the frame has an associated view
     135           0 : FRAME_STATE_BIT(Generic, 13, NS_FRAME_HAS_VIEW)
     136             : 
     137             : // If this bit is set, the frame was created from anonymous content.
     138           0 : FRAME_STATE_BIT(Generic, 14, NS_FRAME_INDEPENDENT_SELECTION)
     139             : 
     140             : // If this bit is set, the frame is part of the mangled frame hierarchy
     141             : // that results when an inline has been split because of a nested block.
     142             : // See the comments in nsCSSFrameConstructor::ConstructInline for
     143             : // more details.  (this is only set on nsBlockFrame/nsInlineFrame frames)
     144           0 : FRAME_STATE_BIT(Generic, 15, NS_FRAME_PART_OF_IBSPLIT)
     145             : 
     146             : // If this bit is set, then transforms (e.g. CSS or SVG transforms) are allowed
     147             : // to affect the frame, and a transform may currently be in affect. If this bit
     148             : // is not set, then any transforms on the frame will be ignored.
     149             : // This is used primarily in GetTransformMatrix to optimize for the
     150             : // common case.
     151           0 : FRAME_STATE_BIT(Generic, 16, NS_FRAME_MAY_BE_TRANSFORMED)
     152             : 
     153             : // If this bit is set, the frame itself is a bidi continuation,
     154             : // or is incomplete (its next sibling is a bidi continuation)
     155           0 : FRAME_STATE_BIT(Generic, 17, NS_FRAME_IS_BIDI)
     156             : 
     157             : // If this bit is set the frame has descendant with a view
     158           0 : FRAME_STATE_BIT(Generic, 18, NS_FRAME_HAS_CHILD_WITH_VIEW)
     159             : 
     160             : // If this bit is set, then reflow may be dispatched from the current
     161             : // frame instead of the root frame.
     162           0 : FRAME_STATE_BIT(Generic, 19, NS_FRAME_REFLOW_ROOT)
     163             : 
     164             : // NOTE: Bits 20-31 and 60-63 of the frame state are reserved for specific
     165             : // frame classes.
     166             : 
     167             : // This bit is set on floats whose parent does not contain their
     168             : // placeholder.  This can happen for two reasons:  (1) the float was
     169             : // split, and this piece is the continuation, or (2) the entire float
     170             : // didn't fit on the page.
     171             : // Note that this bit is also shared by text frames for
     172             : // TEXT_IS_IN_TOKEN_MATHML.  That's OK because we only check the
     173             : // NS_FRAME_IS_PUSHED_FLOAT bit on frames which we already know are
     174             : // out-of-flow.
     175           0 : FRAME_STATE_BIT(Generic, 32, NS_FRAME_IS_PUSHED_FLOAT)
     176             : 
     177             : // This bit acts as a loop flag for recursive paint server drawing.
     178           0 : FRAME_STATE_BIT(Generic, 33, NS_FRAME_DRAWING_AS_PAINTSERVER)
     179             : 
     180             : // Intrinsic ISize depending on the frame's BSize is rare but possible.
     181             : // This flag indicates that the frame has (or once had) a descendant in that
     182             : // situation (possibly the frame itself).
     183           0 : FRAME_STATE_BIT(Generic, 34, NS_FRAME_DESCENDANT_INTRINSIC_ISIZE_DEPENDS_ON_BSIZE)
     184             : 
     185             : // A flag that tells us we can take the common path with respect to style
     186             : // properties for this frame when building event regions. This flag is cleared
     187             : // when any styles are changed and then we recompute it on the next build
     188             : // of the event regions.
     189           0 : FRAME_STATE_BIT(Generic, 35, NS_FRAME_SIMPLE_EVENT_REGIONS)
     190             : 
     191             : // Frame is a display root and the retained layer tree needs to be updated
     192             : // at the next paint via display list construction.
     193             : // Only meaningful for display roots, so we don't really need a global state
     194             : // bit; we could free up this bit with a little extra complexity.
     195           0 : FRAME_STATE_BIT(Generic, 36, NS_FRAME_UPDATE_LAYER_TREE)
     196             : 
     197             : // Frame can accept absolutely positioned children.
     198           0 : FRAME_STATE_BIT(Generic, 37, NS_FRAME_HAS_ABSPOS_CHILDREN)
     199             : 
     200             : // A display item for this frame has been painted as part of a PaintedLayer.
     201           0 : FRAME_STATE_BIT(Generic, 38, NS_FRAME_PAINTED_THEBES)
     202             : 
     203             : // Frame is or is a descendant of something with a fixed block-size, unless
     204             : // that ancestor is a body or html element, and has no closer ancestor that is
     205             : // overflow:auto or overflow:scroll.
     206           0 : FRAME_STATE_BIT(Generic, 39, NS_FRAME_IN_CONSTRAINED_BSIZE)
     207             : 
     208             : // This is only set during painting
     209           0 : FRAME_STATE_BIT(Generic, 40, NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO)
     210             : 
     211             : // Is this frame a container for font size inflation, i.e., is it a
     212             : // frame whose width is used to determine the inflation factor for
     213             : // everything whose nearest ancestor container for this frame?
     214           0 : FRAME_STATE_BIT(Generic, 41, NS_FRAME_FONT_INFLATION_CONTAINER)
     215             : 
     216             : // Does this frame manage a region in which we do font size inflation,
     217             : // i.e., roughly, is it an element establishing a new block formatting
     218             : // context?
     219           0 : FRAME_STATE_BIT(Generic, 42, NS_FRAME_FONT_INFLATION_FLOW_ROOT)
     220             : 
     221             : // This bit is set on SVG frames that are laid out using SVG's coordinate
     222             : // system based layout (as opposed to any of the CSS layout models). Note that
     223             : // this does not include nsSVGOuterSVGFrame since it takes part is CSS layout.
     224           0 : FRAME_STATE_BIT(Generic, 43, NS_FRAME_SVG_LAYOUT)
     225             : 
     226             : // Is this frame allowed to have generated (::before/::after) content?
     227           0 : FRAME_STATE_BIT(Generic, 44, NS_FRAME_MAY_HAVE_GENERATED_CONTENT)
     228             : 
     229             : // This bit is set on frames that create ContainerLayers with component
     230             : // alpha children. With BasicLayers we avoid creating these, so we mark
     231             : // the frames for future reference.
     232           0 : FRAME_STATE_BIT(Generic, 45, NS_FRAME_NO_COMPONENT_ALPHA)
     233             : 
     234             : // This bit indicates that we're tracking visibility for this frame, and that
     235             : // the frame has a VisibilityStateProperty property.
     236           0 : FRAME_STATE_BIT(Generic, 46, NS_FRAME_VISIBILITY_IS_TRACKED)
     237             : 
     238             : // The frame is a descendant of SVGTextFrame and is thus used for SVG
     239             : // text layout.
     240           0 : FRAME_STATE_BIT(Generic, 47, NS_FRAME_IS_SVG_TEXT)
     241             : 
     242             : // Frame is marked as needing painting
     243           0 : FRAME_STATE_BIT(Generic, 48, NS_FRAME_NEEDS_PAINT)
     244             : 
     245             : // Frame has a descendant frame that needs painting - This includes
     246             : // cross-doc children.
     247           0 : FRAME_STATE_BIT(Generic, 49, NS_FRAME_DESCENDANT_NEEDS_PAINT)
     248             : 
     249             : // Frame is a descendant of a popup
     250           0 : FRAME_STATE_BIT(Generic, 50, NS_FRAME_IN_POPUP)
     251             : 
     252             : // Frame has only descendant frames that needs painting - This includes
     253             : // cross-doc children. This guarantees that all descendents have
     254             : // NS_FRAME_NEEDS_PAINT and NS_FRAME_ALL_DESCENDANTS_NEED_PAINT, or they
     255             : // have no display items.
     256           0 : FRAME_STATE_BIT(Generic, 51, NS_FRAME_ALL_DESCENDANTS_NEED_PAINT)
     257             : 
     258             : // Frame is marked as NS_FRAME_NEEDS_PAINT and also has an explicit
     259             : // rect stored to invalidate.
     260           0 : FRAME_STATE_BIT(Generic, 52, NS_FRAME_HAS_INVALID_RECT)
     261             : 
     262             : // Frame is not displayed directly due to it being, or being under, an SVG
     263             : // <defs> element or an SVG resource element (<mask>, <pattern>, etc.)
     264           0 : FRAME_STATE_BIT(Generic, 53, NS_FRAME_IS_NONDISPLAY)
     265             : 
     266             : // Frame has a LayerActivityProperty property
     267           0 : FRAME_STATE_BIT(Generic, 54, NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY)
     268             : 
     269             : // Frame owns anonymous boxes whose style contexts it will need to update during
     270             : // a stylo tree traversal.
     271           0 : FRAME_STATE_BIT(Generic, 55, NS_FRAME_OWNS_ANON_BOXES)
     272             : 
     273             : // Frame maybe has a counter-reset/increment style
     274           0 : FRAME_STATE_BIT(Generic, 56, NS_FRAME_HAS_CSS_COUNTER_STYLE)
     275             : 
     276             : // The display list of the frame can be handled by the shortcut for
     277             : // COMMON CASE.
     278           0 : FRAME_STATE_BIT(Generic, 57, NS_FRAME_SIMPLE_DISPLAYLIST)
     279             : 
     280             : // Set for all descendants of MathML sub/supscript elements (other than the
     281             : // base frame) to indicate that the SSTY font feature should be used.
     282           0 : FRAME_STATE_BIT(Generic, 58, NS_FRAME_MATHML_SCRIPT_DESCENDANT)
     283             : 
     284             : // This state bit is set on frames within token MathML elements if the
     285             : // token represents an <mi> tag whose inner HTML consists of a single
     286             : // non-whitespace character to allow special rendering behaviour.
     287           0 : FRAME_STATE_BIT(Generic, 59, NS_FRAME_IS_IN_SINGLE_CHAR_MI)
     288             : 
     289             : // NOTE: Bits 20-31 and 60-63 of the frame state are reserved for specific
     290             : // frame classes.
     291             : 
     292             : 
     293             : // == Frame state bits that apply to box frames ===============================
     294             : 
     295           0 : FRAME_STATE_GROUP(Box, nsBoxFrame)
     296             : 
     297           0 : FRAME_STATE_BIT(Box, 20, NS_STATE_BOX_CHILD_RESERVED)
     298           0 : FRAME_STATE_BIT(Box, 21, NS_STATE_STACK_NOT_POSITIONED)
     299           0 : FRAME_STATE_BIT(Box, 22, NS_STATE_IS_HORIZONTAL)
     300           0 : FRAME_STATE_BIT(Box, 23, NS_STATE_AUTO_STRETCH)
     301           0 : FRAME_STATE_BIT(Box, 24, NS_STATE_IS_ROOT)
     302           0 : FRAME_STATE_BIT(Box, 25, NS_STATE_CURRENTLY_IN_DEBUG)
     303           0 : FRAME_STATE_BIT(Box, 26, NS_STATE_SET_TO_DEBUG)
     304           0 : FRAME_STATE_BIT(Box, 27, NS_STATE_DEBUG_WAS_SET)
     305           0 : FRAME_STATE_BIT(Box, 28, NS_STATE_MENU_HAS_POPUP_LIST)
     306           0 : FRAME_STATE_BIT(Box, 29, NS_STATE_BOX_WRAPS_KIDS_IN_BLOCK)
     307           0 : FRAME_STATE_BIT(Box, 30, NS_STATE_EQUAL_SIZE)
     308           0 : FRAME_STATE_BIT(Box, 31, NS_STATE_IS_DIRECTION_NORMAL)
     309           0 : FRAME_STATE_BIT(Box, 60, NS_FRAME_MOUSE_THROUGH_ALWAYS)
     310           0 : FRAME_STATE_BIT(Box, 61, NS_FRAME_MOUSE_THROUGH_NEVER)
     311             : 
     312             : 
     313             : // == Frame state bits that apply to flex container frames ====================
     314             : 
     315           0 : FRAME_STATE_GROUP(FlexContainer, nsFlexContainerFrame)
     316             : 
     317             : // True iff the normal flow children are already in CSS 'order' in the
     318             : // order they occur in the child frame list.
     319           0 : FRAME_STATE_BIT(FlexContainer, 20, NS_STATE_FLEX_NORMAL_FLOW_CHILDREN_IN_CSS_ORDER)
     320             : 
     321             : // Set for a flex container that is emulating a legacy
     322             : // 'display:-webkit-{inline-}box' container.
     323           0 : FRAME_STATE_BIT(FlexContainer, 21, NS_STATE_FLEX_IS_LEGACY_WEBKIT_BOX)
     324             : 
     325             : // True if the container has no flex items; may lie if there is a pending reflow
     326           0 : FRAME_STATE_BIT(FlexContainer, 22, NS_STATE_FLEX_SYNTHESIZE_BASELINE)
     327             : 
     328             : // == Frame state bits that apply to grid container frames ====================
     329             : 
     330           0 : FRAME_STATE_GROUP(GridContainer, nsGridContainerFrame)
     331             : 
     332             : // True iff the normal flow children are already in CSS 'order' in the
     333             : // order they occur in the child frame list.
     334           0 : FRAME_STATE_BIT(GridContainer, 20, NS_STATE_GRID_NORMAL_FLOW_CHILDREN_IN_CSS_ORDER)
     335             : 
     336             : // True iff some first-in-flow in-flow children were pushed.
     337             : // Note that those child frames may have been removed without this bit
     338             : // being updated for performance reasons, so code shouldn't depend on
     339             : // actually finding any pushed items when this bit is set.
     340           0 : FRAME_STATE_BIT(GridContainer, 21, NS_STATE_GRID_DID_PUSH_ITEMS)
     341             : 
     342             : // True iff computed grid values should be generated on the next reflow
     343           0 : FRAME_STATE_BIT(GridContainer, 22, NS_STATE_GRID_GENERATE_COMPUTED_VALUES)
     344             : 
     345             : // True if the container has no grid items; may lie if there is a pending reflow
     346           0 : FRAME_STATE_BIT(GridContainer, 23, NS_STATE_GRID_SYNTHESIZE_BASELINE)
     347             : 
     348             : // == Frame state bits that apply to SVG frames ===============================
     349             : 
     350           0 : FRAME_STATE_GROUP(SVG, nsSVGDisplayableFrame)
     351           0 : FRAME_STATE_GROUP(SVG, nsSVGContainerFrame)
     352             : 
     353           0 : FRAME_STATE_BIT(SVG, 20, NS_STATE_IS_OUTER_SVG)
     354             : 
     355             : // If this bit is set, we are a <clipPath> element or descendant.
     356           0 : FRAME_STATE_BIT(SVG, 21, NS_STATE_SVG_CLIPPATH_CHILD)
     357             : 
     358             : // For SVG text, the NS_FRAME_IS_DIRTY and NS_FRAME_HAS_DIRTY_CHILDREN bits
     359             : // indicate that our anonymous block child needs to be reflowed, and that
     360             : // mPositions will likely need to be updated as a consequence. These are set,
     361             : // for example, when the font-family changes. Sometimes we only need to
     362             : // update mPositions though. For example if the x/y attributes change.
     363             : // mPositioningDirty is used to indicate this latter "things are dirty" case
     364             : // to allow us to avoid reflowing the anonymous block when it is not
     365             : // necessary.
     366           0 : FRAME_STATE_BIT(SVG, 22, NS_STATE_SVG_POSITIONING_DIRTY)
     367             : 
     368             : // For text, whether the values from x/y/dx/dy attributes have any percentage
     369             : // values that are used in determining the positions of glyphs.  The value will
     370             : // be true even if a positioning value is overridden by a descendant element's
     371             : // attribute with a non-percentage length.  For example,
     372             : // NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES would be set for:
     373             : //
     374             : //   <text x="10%"><tspan x="0">abc</tspan></text>
     375             : //
     376             : // Percentage values beyond the number of addressable characters, however, do
     377             : // not influence NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES.  For example,
     378             : // NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES would be false for:
     379             : //
     380             : //   <text x="10 20 30 40%">abc</text>
     381             : //
     382             : // NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES is used to determine whether
     383             : // to recompute mPositions when the viewport size changes.  So although the
     384             : // first example above shows that NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES
     385             : // can be true even if a viewport size change will not affect mPositions,
     386             : // determining a completley accurate value for
     387             : // NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES would require extra work that is
     388             : // probably not worth it.
     389           0 : FRAME_STATE_BIT(SVG, 23, NS_STATE_SVG_POSITIONING_MAY_USE_PERCENTAGES)
     390             : 
     391           0 : FRAME_STATE_BIT(SVG, 24, NS_STATE_SVG_TEXT_IN_REFLOW)
     392             : 
     393             : 
     394             : // == Frame state bits that apply to text frames ==============================
     395             : 
     396           0 : FRAME_STATE_GROUP(Text, nsTextFrame)
     397             : 
     398             : // -- Flags set during reflow -------------------------------------------------
     399             : 
     400             : // nsTextFrame.cpp defines TEXT_REFLOW_FLAGS to be all of these bits.
     401             : 
     402             : // This bit is set on the first frame in a continuation indicating
     403             : // that it was chopped short because of :first-letter style.
     404           0 : FRAME_STATE_BIT(Text, 20, TEXT_FIRST_LETTER)
     405             : 
     406             : // This bit is set on frames that are logically adjacent to the start of the
     407             : // line (i.e. no prior frame on line with actual displayed in-flow content).
     408           0 : FRAME_STATE_BIT(Text, 21, TEXT_START_OF_LINE)
     409             : 
     410             : // This bit is set on frames that are logically adjacent to the end of the
     411             : // line (i.e. no following on line with actual displayed in-flow content).
     412           0 : FRAME_STATE_BIT(Text, 22, TEXT_END_OF_LINE)
     413             : 
     414             : // This bit is set on frames that end with a hyphenated break.
     415           0 : FRAME_STATE_BIT(Text, 23, TEXT_HYPHEN_BREAK)
     416             : 
     417             : // This bit is set on frames that trimmed trailing whitespace characters when
     418             : // calculating their width during reflow.
     419           0 : FRAME_STATE_BIT(Text, 24, TEXT_TRIMMED_TRAILING_WHITESPACE)
     420             : 
     421             : // This bit is set on frames that have justification enabled. We record
     422             : // this in a state bit because we don't always have the containing block
     423             : // easily available to check text-align on.
     424           0 : FRAME_STATE_BIT(Text, 25, TEXT_JUSTIFICATION_ENABLED)
     425             : 
     426             : // Set this bit if the textframe has overflow area for IME/spellcheck underline.
     427           0 : FRAME_STATE_BIT(Text, 26, TEXT_SELECTION_UNDERLINE_OVERFLOWED)
     428             : 
     429             : // -- Cache bits for IsEmpty() ------------------------------------------------
     430             : 
     431             : // nsTextFrame.cpp defines TEXT_WHITESPACE_FLAGS to be both of these bits.
     432             : 
     433             : // Set this bit if the textframe is known to be only collapsible whitespace.
     434           0 : FRAME_STATE_BIT(Text, 27, TEXT_IS_ONLY_WHITESPACE)
     435             : 
     436             : // Set this bit if the textframe is known to be not only collapsible whitespace.
     437           0 : FRAME_STATE_BIT(Text, 28, TEXT_ISNOT_ONLY_WHITESPACE)
     438             : 
     439             : // -- Other state bits --------------------------------------------------------
     440             : 
     441             : // Set when this text frame is mentioned in the userdata for mTextRun
     442           0 : FRAME_STATE_BIT(Text, 29, TEXT_IN_TEXTRUN_USER_DATA)
     443             : 
     444             : // This state bit is set on frames whose character data offsets need to be
     445             : // fixed up
     446           0 : FRAME_STATE_BIT(Text, 30, TEXT_OFFSETS_NEED_FIXING)
     447             : 
     448             : // This state bit is set on frames that have some non-collapsed characters after
     449             : // reflow
     450           0 : FRAME_STATE_BIT(Text, 31, TEXT_HAS_NONCOLLAPSED_CHARACTERS)
     451             : 
     452             : // This state bit is set on children of token MathML elements.
     453             : // NOTE: TEXT_IS_IN_TOKEN_MATHML has a global state bit value that is shared
     454             : //       with NS_FRAME_IS_PUSHED_FLOAT.
     455           0 : FRAME_STATE_BIT(Text, 32, TEXT_IS_IN_TOKEN_MATHML)
     456             : 
     457             : // Set when this text frame is mentioned in the userdata for the
     458             : // uninflated textrun property
     459           0 : FRAME_STATE_BIT(Text, 60, TEXT_IN_UNINFLATED_TEXTRUN_USER_DATA)
     460             : 
     461           0 : FRAME_STATE_BIT(Text, 61, TEXT_HAS_FONT_INFLATION)
     462             : 
     463             : // Set when this text frame contains nothing that will actually render
     464           0 : FRAME_STATE_BIT(Text, 62, TEXT_NO_RENDERED_GLYPHS)
     465             : 
     466             : // Whether this frame is cached in the Offset Frame Cache
     467             : // (OffsetToFrameProperty)
     468           0 : FRAME_STATE_BIT(Text, 63, TEXT_IN_OFFSET_CACHE)
     469             : 
     470             : 
     471             : // == Frame state bits that apply to block frames =============================
     472             : 
     473           0 : FRAME_STATE_GROUP(Block, nsBlockFrame)
     474             : 
     475             : // Something in the block has changed that requires Bidi resolution to be
     476             : // performed on the block. This flag must be either set on all blocks in a
     477             : // continuation chain or none of them.
     478           0 : FRAME_STATE_BIT(Block, 20, NS_BLOCK_NEEDS_BIDI_RESOLUTION)
     479             : 
     480           0 : FRAME_STATE_BIT(Block, 21, NS_BLOCK_HAS_PUSHED_FLOATS)
     481             : 
     482             : // This indicates that this is a frame from which child margins can be
     483             : // calculated. The absence of this flag implies that child margin calculations
     484             : // should ignore the frame and look further up the parent chain. Used in
     485             : // nsBlockReflowContext::ComputeCollapsedBStartMargin() via
     486             : // nsBlockFrame::IsMarginRoot().
     487             : //
     488             : // This causes the BlockReflowInput's constructor to set the
     489             : // mIsBStartMarginRoot and mIsBEndMarginRoot flags.
     490           0 : FRAME_STATE_BIT(Block, 22, NS_BLOCK_MARGIN_ROOT)
     491             : 
     492             : // This indicates that a block frame should create its own float manager. This
     493             : // is required by each block frame that can contain floats. The float manager is
     494             : // used to reserve space for the floated frames.
     495           0 : FRAME_STATE_BIT(Block, 23, NS_BLOCK_FLOAT_MGR)
     496             : 
     497             : // For setting the relevant bits on a block formatting context:
     498             : #define NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS (NS_BLOCK_FLOAT_MGR | NS_BLOCK_MARGIN_ROOT)
     499             : 
     500           0 : FRAME_STATE_BIT(Block, 24, NS_BLOCK_HAS_LINE_CURSOR)
     501             : 
     502           0 : FRAME_STATE_BIT(Block, 25, NS_BLOCK_HAS_OVERFLOW_LINES)
     503             : 
     504           0 : FRAME_STATE_BIT(Block, 26, NS_BLOCK_HAS_OVERFLOW_OUT_OF_FLOWS)
     505             : 
     506             : // Set on any block that has descendant frames in the normal
     507             : // flow with 'clear' set to something other than 'none'
     508             : // (including <BR CLEAR="..."> frames)
     509           0 : FRAME_STATE_BIT(Block, 27, NS_BLOCK_HAS_CLEAR_CHILDREN)
     510             : 
     511             : // NS_BLOCK_CLIP_PAGINATED_OVERFLOW is only set in paginated prescontexts, on
     512             : // blocks which were forced to not have scrollframes but still need to clip
     513             : // the display of their kids.
     514           0 : FRAME_STATE_BIT(Block, 28, NS_BLOCK_CLIP_PAGINATED_OVERFLOW)
     515             : 
     516             : // NS_BLOCK_HAS_FIRST_LETTER_STYLE means that the block has first-letter style,
     517             : // even if it has no actual first-letter frame among its descendants.
     518           0 : FRAME_STATE_BIT(Block, 29, NS_BLOCK_HAS_FIRST_LETTER_STYLE)
     519             : 
     520             : // NS_BLOCK_FRAME_HAS_OUTSIDE_BULLET and NS_BLOCK_FRAME_HAS_INSIDE_BULLET
     521             : // means the block has an associated bullet frame, they are mutually exclusive.
     522           0 : FRAME_STATE_BIT(Block, 30, NS_BLOCK_FRAME_HAS_OUTSIDE_BULLET)
     523           0 : FRAME_STATE_BIT(Block, 31, NS_BLOCK_FRAME_HAS_INSIDE_BULLET)
     524             : 
     525             : // This block has had a child marked dirty, so before we reflow we need
     526             : // to look through the lines to find any such children and mark
     527             : // appropriate lines dirty.
     528           0 : FRAME_STATE_BIT(Block, 61, NS_BLOCK_LOOK_FOR_DIRTY_FRAMES)
     529             : 
     530             : // Are our cached intrinsic widths intrinsic widths for font size
     531             : // inflation?  i.e., what was the current state of
     532             : // GetPresContext()->mInflationDisabledForShrinkWrap at the time they
     533             : // were computed?
     534             : // nsBlockFrame is the only thing that caches intrinsic widths that
     535             : // needs to track this because it's the only thing that caches intrinsic
     536             : // widths that lives inside of things (form controls) that do intrinsic
     537             : // sizing with font inflation enabled.
     538           0 : FRAME_STATE_BIT(Block, 62, NS_BLOCK_FRAME_INTRINSICS_INFLATED)
     539             : 
     540             : // NS_BLOCK_HAS_FIRST_LETTER_CHILD means that there is an inflow first-letter
     541             : // frame among the block's descendants. If there is a floating first-letter
     542             : // frame, or the block has first-letter style but has no first letter, this
     543             : // bit is not set. This bit is set on the first continuation only.
     544           0 : FRAME_STATE_BIT(Block, 63, NS_BLOCK_HAS_FIRST_LETTER_CHILD)
     545             : 
     546             : 
     547             : // == Frame state bits that apply to bullet frames ============================
     548             : 
     549           0 : FRAME_STATE_GROUP(Bullet, nsBulletFrame)
     550             : 
     551           0 : FRAME_STATE_BIT(Block, 62, BULLET_FRAME_HAS_FONT_INFLATION)
     552           0 : FRAME_STATE_BIT(Block, 63, BULLET_FRAME_IMAGE_LOADING)
     553             : 
     554             : 
     555             : // == Frame state bits that apply to scroll frames ============================
     556             : 
     557           0 : FRAME_STATE_GROUP(Scroll, nsIScrollableFrame)
     558             : 
     559             : // When set, the next scroll operation on the scrollframe will invalidate its
     560             : // entire contents. Useful for text-overflow.
     561             : // This bit is cleared after each time the scrollframe is scrolled. Whoever
     562             : // needs to set it should set it again on each paint.
     563           0 : FRAME_STATE_BIT(Scroll, 20, NS_SCROLLFRAME_INVALIDATE_CONTENTS_ON_SCROLL)
     564             : 
     565             : 
     566             : // == Frame state bits that apply to image frames =============================
     567             : 
     568           0 : FRAME_STATE_GROUP(Image, nsImageFrame)
     569             : 
     570           0 : FRAME_STATE_BIT(Image, 20, IMAGE_SIZECONSTRAINED)
     571           0 : FRAME_STATE_BIT(Image, 21, IMAGE_GOTINITIALREFLOW)
     572             : 
     573             : 
     574             : // == Frame state bits that apply to inline frames ============================
     575             : 
     576           0 : FRAME_STATE_GROUP(Inline, nsInlineFrame)
     577             : 
     578             : /**  In Bidi inline start (or end) margin/padding/border should be applied to
     579             :  *  first (or last) frame (or a continuation frame).
     580             :  *  This state value shows if this frame is first (or last) continuation
     581             :  *  or not.
     582             :  */
     583             : 
     584           0 : FRAME_STATE_BIT(Inline, 21, NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET)
     585           0 : FRAME_STATE_BIT(Inline, 22, NS_INLINE_FRAME_BIDI_VISUAL_IS_FIRST)
     586           0 : FRAME_STATE_BIT(Inline, 23, NS_INLINE_FRAME_BIDI_VISUAL_IS_LAST)
     587             : // nsRubyTextFrame inherits from nsInlineFrame
     588             : 
     589             : 
     590             : // == Frame state bits that apply to ruby text frames =========================
     591             : 
     592           0 : FRAME_STATE_GROUP(RubyText, nsRubyTextFrame)
     593             : 
     594             : // inherits from nsInlineFrame
     595           0 : FRAME_STATE_BIT(RubyText, 24, NS_RUBY_TEXT_FRAME_AUTOHIDE)
     596             : 
     597             : 
     598             : // == Frame state bits that apply to ruby text container frames ===============
     599             : 
     600           0 : FRAME_STATE_GROUP(RubyTextContainer, nsRubyTextContainerFrame)
     601             : 
     602           0 : FRAME_STATE_BIT(RubyTextContainer, 20, NS_RUBY_TEXT_CONTAINER_IS_SPAN)
     603             : 
     604             : 
     605             : // == Frame state bits that apply to placeholder frames =======================
     606             : 
     607           0 : FRAME_STATE_GROUP(Placeholder, nsPlaceholderFrame)
     608             : 
     609             : // Frame state bits that are used to keep track of what this is a
     610             : // placeholder for.
     611             : 
     612           0 : FRAME_STATE_BIT(Placeholder, 20, PLACEHOLDER_FOR_FLOAT)
     613           0 : FRAME_STATE_BIT(Placeholder, 21, PLACEHOLDER_FOR_ABSPOS)
     614           0 : FRAME_STATE_BIT(Placeholder, 22, PLACEHOLDER_FOR_FIXEDPOS)
     615           0 : FRAME_STATE_BIT(Placeholder, 23, PLACEHOLDER_FOR_POPUP)
     616           0 : FRAME_STATE_BIT(Placeholder, 24, PLACEHOLDER_FOR_TOPLAYER)
     617             : 
     618             : // This bit indicates that the out-of-flow frame's static position needs to be
     619             : // determined using the CSS Box Alignment properties
     620             : // ([align,justify]-[self,content]).  When this is set, the placeholder frame's
     621             : // position doesn't represent the static position, as it usually would --
     622             : // rather, it represents the logical start corner of the alignment containing
     623             : // block.  Then, after we've determined the out-of-flow frame's size, we can
     624             : // resolve the actual static position using the alignment properties.
     625           0 : FRAME_STATE_BIT(Placeholder, 25, PLACEHOLDER_STATICPOS_NEEDS_CSSALIGN)
     626             : 
     627             : // Are all earlier frames on the same block line empty?
     628           0 : FRAME_STATE_BIT(Placeholder, 26, PLACEHOLDER_LINE_IS_EMPTY_SO_FAR)
     629             : // Does the above bit have a valid value?
     630           0 : FRAME_STATE_BIT(Placeholder, 27, PLACEHOLDER_HAVE_LINE_IS_EMPTY_SO_FAR)
     631             : 
     632             : // == Frame state bits that apply to table cell frames ========================
     633             : 
     634           0 : FRAME_STATE_GROUP(TableCell, nsTableCellFrame)
     635             : 
     636           0 : FRAME_STATE_BIT(TableCell, 28, NS_TABLE_CELL_HAS_PCT_OVER_BSIZE)
     637           0 : FRAME_STATE_BIT(TableCell, 29, NS_TABLE_CELL_HAD_SPECIAL_REFLOW)
     638           0 : FRAME_STATE_BIT(TableCell, 31, NS_TABLE_CELL_CONTENT_EMPTY)
     639             : 
     640             : 
     641             : // == Frame state bits that apply to table column frames ======================
     642             : 
     643             : // Bits 28-31 on nsTableColFrames are used to store the column type.
     644             : 
     645             : 
     646             : // == Frame state bits that apply to table column group frames ================
     647             : 
     648             : // Bits 30-31 on nsTableColGroupFrames are used to store the column type.
     649             : 
     650             : 
     651             : // == Frame state bits that apply to table rows and table row group frames ====
     652             : 
     653           0 : FRAME_STATE_GROUP(TableRowAndRowGroup, nsTableRowFrame)
     654           0 : FRAME_STATE_GROUP(TableRowAndRowGroup, nsTableRowGroupFrame)
     655             : 
     656             : // see nsTableRowGroupFrame::InitRepeatedFrame
     657           0 : FRAME_STATE_BIT(TableRowAndRowGroup, 28, NS_REPEATED_ROW_OR_ROWGROUP)
     658             : 
     659             : 
     660             : // == Frame state bits that apply to table row frames =========================
     661             : 
     662           0 : FRAME_STATE_GROUP(TableRow, nsTableRowFrame)
     663             : 
     664             : // Indicates whether this row has any cells that have
     665             : // non-auto-bsize and rowspan=1
     666           0 : FRAME_STATE_BIT(TableRow, 29, NS_ROW_HAS_CELL_WITH_STYLE_BSIZE)
     667             : 
     668           0 : FRAME_STATE_BIT(TableRow, 30, NS_TABLE_ROW_HAS_UNPAGINATED_BSIZE)
     669             : 
     670             : 
     671             : // == Frame state bits that apply to table row group frames ===================
     672             : 
     673           0 : FRAME_STATE_GROUP(TableRowGroup, nsTableRowGroupFrame)
     674             : 
     675           0 : FRAME_STATE_BIT(TableRowGroup, 27, NS_ROWGROUP_HAS_ROW_CURSOR)
     676           0 : FRAME_STATE_BIT(TableRowGroup, 30, NS_ROWGROUP_HAS_STYLE_BSIZE)
     677             : 
     678             : // thead or tfoot should be repeated on every printed page
     679           0 : FRAME_STATE_BIT(TableRowGroup, 31, NS_ROWGROUP_REPEATABLE)
     680             : 
     681           0 : FRAME_STATE_GROUP(Table, nsTableFrame)
     682             : 
     683           0 : FRAME_STATE_BIT(Table, 28, NS_TABLE_PART_HAS_FIXED_BACKGROUND)
     684             : 
     685             : #ifdef DEFINED_FRAME_STATE_GROUP
     686             : #undef DEFINED_FRAME_STATE_GROUP
     687             : #undef FRAME_STATE_GROUP
     688             : #endif
     689             : 
     690             : #ifdef DEFINED_FRAME_STATE_BIT
     691             : #undef DEFINED_FRAME_STATE_BIT
     692             : #undef FRAME_STATE_BIT
     693             : #endif

Generated by: LCOV version 1.13