Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Unified Diff: Source/core/rendering/RenderObject.h

Issue 18601002: Add infrastructure for partial layouts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: define RenderObject::frameView in the header Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderMultiColumnBlock.h ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « Source/core/rendering/RenderMultiColumnBlock.h ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698