| Index: Source/core/layout/LayoutObject.h
 | 
| diff --git a/Source/core/layout/LayoutObject.h b/Source/core/layout/LayoutObject.h
 | 
| index ae63d6ca79b8b9be6e18a59b44e7aefad3ea1e16..837eeed856cd2810e05e6f2968f4d3afa6ccb728 100644
 | 
| --- a/Source/core/layout/LayoutObject.h
 | 
| +++ b/Source/core/layout/LayoutObject.h
 | 
| @@ -203,7 +203,7 @@ public:
 | 
|      // function follows the containing block chain.
 | 
|      LayoutFlowThread* flowThreadContainingBlock() const
 | 
|      {
 | 
| -        if (flowThreadState() == NotInsideFlowThread)
 | 
| +        if (!isInsideFlowThread())
 | 
|              return 0;
 | 
|          return locateFlowThreadContainingBlock();
 | 
|      }
 | 
| @@ -287,9 +287,9 @@ protected:
 | 
|          // Only update if our flow thread state is different from our new parent and if we're not a LayoutFlowThread.
 | 
|          // A LayoutFlowThread is always considered to be inside itself, so it never has to change its state
 | 
|          // in response to parent changes.
 | 
| -        FlowThreadState newState = parent ? parent->flowThreadState() : NotInsideFlowThread;
 | 
| -        if (newState != flowThreadState() && !isLayoutFlowThread())
 | 
| -            setFlowThreadStateIncludingDescendants(newState);
 | 
| +        bool insideFlowThread = parent && parent->isInsideFlowThread();
 | 
| +        if (insideFlowThread != isInsideFlowThread() && !isLayoutFlowThread())
 | 
| +            setIsInsideFlowThreadIncludingDescendants(insideFlowThread);
 | 
|      }
 | 
|  
 | 
|      //////////////////////////////////////////
 | 
| @@ -430,16 +430,10 @@ public:
 | 
|              setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReason::LineBoxesChanged);
 | 
|      }
 | 
|  
 | 
| -    enum FlowThreadState {
 | 
| -        NotInsideFlowThread = 0,
 | 
| -        InsideOutOfFlowThread = 1,
 | 
| -        InsideInFlowThread = 2,
 | 
| -    };
 | 
| -
 | 
| -    void setFlowThreadStateIncludingDescendants(FlowThreadState);
 | 
| +    void setIsInsideFlowThreadIncludingDescendants(bool);
 | 
|  
 | 
| -    FlowThreadState flowThreadState() const { return m_bitfields.flowThreadState(); }
 | 
| -    void setFlowThreadState(FlowThreadState state) { m_bitfields.setFlowThreadState(state); }
 | 
| +    bool isInsideFlowThread() const { return m_bitfields.isInsideFlowThread(); }
 | 
| +    void setIsInsideFlowThread(bool insideFlowThread) { m_bitfields.setIsInsideFlowThread(insideFlowThread); }
 | 
|  
 | 
|      // FIXME: Until all SVG layoutObjects can be subclasses of LayoutSVGModelObject we have
 | 
|      // to add SVG layoutObject methods to LayoutObject with an ASSERT_NOT_REACHED() default implementation.
 | 
| @@ -1307,13 +1301,13 @@ private:
 | 
|              , m_ancestorLineBoxDirty(false)
 | 
|              , m_layoutDidGetCalledSinceLastFrame(false)
 | 
|              , m_hasPendingResourceUpdate(false)
 | 
| +            , m_isInsideFlowThread(false)
 | 
|              , m_childrenInline(false)
 | 
|              , m_hasColumns(false)
 | 
|              , m_alwaysCreateLineBoxesForLayoutInline(false)
 | 
|              , m_lastBoxDecorationBackgroundObscured(false)
 | 
|              , m_positionedState(IsStaticallyPositioned)
 | 
|              , m_selectionState(SelectionNone)
 | 
| -            , m_flowThreadState(NotInsideFlowThread)
 | 
|              , m_boxDecorationBackgroundState(NoBoxDecorationBackground)
 | 
|              , m_fullPaintInvalidationReason(PaintInvalidationNone)
 | 
|          {
 | 
| @@ -1355,6 +1349,8 @@ private:
 | 
|  
 | 
|          ADD_BOOLEAN_BITFIELD(hasPendingResourceUpdate, HasPendingResourceUpdate);
 | 
|  
 | 
| +        ADD_BOOLEAN_BITFIELD(isInsideFlowThread, IsInsideFlowThread);
 | 
| +
 | 
|          // from LayoutBlock
 | 
|          ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline);
 | 
|          ADD_BOOLEAN_BITFIELD(hasColumns, HasColumns);
 | 
| @@ -1368,7 +1364,6 @@ private:
 | 
|      private:
 | 
|          unsigned m_positionedState : 2; // PositionedState
 | 
|          unsigned m_selectionState : 3; // SelectionState
 | 
| -        unsigned m_flowThreadState : 2; // FlowThreadState
 | 
|          unsigned m_boxDecorationBackgroundState : 2; // BoxDecorationBackgroundState
 | 
|          unsigned m_fullPaintInvalidationReason : 5; // PaintInvalidationReason
 | 
|  
 | 
| @@ -1387,9 +1382,6 @@ private:
 | 
|          ALWAYS_INLINE SelectionState selectionState() const { return static_cast<SelectionState>(m_selectionState); }
 | 
|          ALWAYS_INLINE void setSelectionState(SelectionState selectionState) { m_selectionState = selectionState; }
 | 
|  
 | 
| -        ALWAYS_INLINE FlowThreadState flowThreadState() const { return static_cast<FlowThreadState>(m_flowThreadState); }
 | 
| -        ALWAYS_INLINE void setFlowThreadState(FlowThreadState flowThreadState) { m_flowThreadState = flowThreadState; }
 | 
| -
 | 
|          ALWAYS_INLINE BoxDecorationBackgroundState boxDecorationBackgroundState() const { return static_cast<BoxDecorationBackgroundState>(m_boxDecorationBackgroundState); }
 | 
|          ALWAYS_INLINE void setBoxDecorationBackgroundState(BoxDecorationBackgroundState s) { m_boxDecorationBackgroundState = s; }
 | 
|  
 | 
| 
 |