| Index: Source/core/rendering/RenderObject.h
|
| diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h
|
| index 78ff7e05d7fda3f1c1793cce46584975b0b49159..42a84570f60de580d80af3615cfecafb5e83e0b1 100644
|
| --- a/Source/core/rendering/RenderObject.h
|
| +++ b/Source/core/rendering/RenderObject.h
|
| @@ -67,6 +67,7 @@ class RenderNamedFlowThread;
|
| class RenderSVGResourceContainer;
|
| class RenderTable;
|
| class RenderTheme;
|
| +class RenderView;
|
| class TransformState;
|
|
|
| struct PaintInfo;
|
| @@ -674,6 +675,9 @@ public:
|
| void forceLayout();
|
| void forceChildLayout();
|
|
|
| + // True if we can abort layout, leaving a partially laid out tree.
|
| + virtual bool supportsPartialLayout() const { return false; }
|
| +
|
| // used for element state updates that cannot be fixed with a
|
| // repaint and do not need a relayout
|
| virtual void updateFromElement() { }
|
| @@ -1073,6 +1077,7 @@ private:
|
|
|
| #ifndef NDEBUG
|
| void checkBlockPositionedObjectsNeedLayout();
|
| + void checkNotInPartialLayout();
|
| #endif
|
|
|
| RefPtr<RenderStyle> m_style;
|
| @@ -1243,6 +1248,9 @@ inline bool RenderObject::isBeforeOrAfterContent() const
|
|
|
| inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLayoutScope* layouter)
|
| {
|
| +#ifndef NDEBUG
|
| + checkNotInPartialLayout();
|
| +#endif
|
| ASSERT(!isSetNeedsLayoutForbidden());
|
| bool alreadyNeededLayout = m_bitfields.needsLayout();
|
| m_bitfields.setNeedsLayout(true);
|
| @@ -1256,6 +1264,9 @@ inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLay
|
|
|
| inline void RenderObject::clearNeedsLayout()
|
| {
|
| +#ifndef NDEBUG
|
| + checkNotInPartialLayout();
|
| +#endif
|
| m_bitfields.setNeedsLayout(false);
|
| setEverHadLayout(true);
|
| setPosChildNeedsLayout(false);
|
|
|