| 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);
 | 
| 
 |