Index: Source/core/rendering/RenderObject.h |
diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h |
index 16264201d1ada3c0f0700e92de4cf91429c8f572..7c4212b5e2e7d12e15b7f683056a39070bc2dd69 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; |
esprehn
2013/09/04 07:10:13
This should be inline in the header here just like
|
// 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); |