| Index: Source/core/rendering/RenderObject.h
|
| diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h
|
| index 16264201d1ada3c0f0700e92de4cf91429c8f572..99933164213da6774c6fddb84e08360276617d08 100644
|
| --- a/Source/core/rendering/RenderObject.h
|
| +++ b/Source/core/rendering/RenderObject.h
|
| @@ -64,6 +64,8 @@ class RenderLayerModelObject;
|
| class RenderNamedFlowThread;
|
| class RenderSVGResourceContainer;
|
| class RenderTable;
|
| +class RenderTheme;
|
| +class RenderView;
|
| class TransformState;
|
|
|
| struct PaintInfo;
|
| @@ -584,6 +586,7 @@ public:
|
| virtual void updateDragState(bool dragOn);
|
|
|
| RenderView* view() const { return document().renderView(); };
|
| + FrameView* frameView() const { return document().view(); };
|
|
|
| // Returns true if this renderer is rooted, and optionally returns the hosting view (the root of the hierarchy).
|
| bool isRooted(RenderView** = 0) const;
|
| @@ -670,6 +673,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() { }
|
| @@ -1070,6 +1076,7 @@ private:
|
|
|
| #ifndef NDEBUG
|
| void checkBlockPositionedObjectsNeedLayout();
|
| + void checkNotInPartialLayout();
|
| #endif
|
|
|
| RefPtr<RenderStyle> m_style;
|
| @@ -1240,6 +1247,9 @@ inline bool RenderObject::isBeforeOrAfterContent() const
|
|
|
| inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLayoutScope* layouter)
|
| {
|
| +#ifndef NDEBUG
|
| + checkNotInPartialLayout();
|
| +#endif
|
| ASSERT(!isSetNeedsLayoutForbidden());
|
| bool alreadyNeededLayout = m_bitfields.selfNeedsLayout();
|
| setSelfNeedsLayout(true);
|
| @@ -1253,6 +1263,9 @@ inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLay
|
|
|
| inline void RenderObject::clearNeedsLayout()
|
| {
|
| +#ifndef NDEBUG
|
| + checkNotInPartialLayout();
|
| +#endif
|
| setSelfNeedsLayout(false);
|
| setEverHadLayout(true);
|
| setPosChildNeedsLayout(false);
|
|
|