Chromium Code Reviews| Index: Source/core/frame/FrameView.h |
| diff --git a/Source/core/frame/FrameView.h b/Source/core/frame/FrameView.h |
| index ddda79956886827b54914f5e4b2ef74059285125..4c9ad492e17caad2bdc35ab0d210bdce9612d0f7 100644 |
| --- a/Source/core/frame/FrameView.h |
| +++ b/Source/core/frame/FrameView.h |
| @@ -102,10 +102,12 @@ public: |
| bool layoutPending() const; |
| bool isInPerformLayout() const; |
| - LayoutObject* layoutRoot(bool onlyDuringLayout = false) const; |
| - void clearLayoutSubtreeRoot() { m_layoutSubtreeRoot = nullptr; } |
| + bool isLayoutRoot(const LayoutObject*) const; |
|
esprehn
2015/02/24 02:31:32
reference.
|
| + void clearLayoutSubtreeRoot(const LayoutObject*); |
| int layoutCount() const { return m_layoutCount; } |
| + void countObjectsNeedingLayout(unsigned& needsLayoutObjects, unsigned& totalObjects, bool& isPartial); |
|
esprehn
2015/02/24 02:31:32
This should really use a struct, but we can fix th
|
| + |
| bool needsLayout() const; |
| void setNeedsLayout(); |
| @@ -326,7 +328,7 @@ public: |
| // FIXME: This should probably be renamed as the 'inSubtreeLayout' parameter |
| // passed around the FrameView layout methods can be true while this returns |
| // false. |
| - bool isSubtreeLayout() const { return !!m_layoutSubtreeRoot; } |
| + bool isSubtreeLayout() const { return m_isSubtreeLayout; } |
| // Sets the tickmarks for the FrameView, overriding the default behavior |
| // which is to display the tickmarks corresponding to find results. |
| @@ -602,6 +604,8 @@ private: |
| void reset(); |
| void init(); |
| + void clearLayoutSubtreeRootsAndMarkContainingBlocks(); |
| + |
| // Called when our frame rect changes (or the rect/scroll position of an ancestor changes). |
| virtual void frameRectsChanged() override; |
| @@ -615,14 +619,12 @@ private: |
| void updateCounters(); |
| void forceLayoutParentViewIfNeeded(); |
| void performPreLayoutTasks(); |
| - void performLayout(LayoutObject* rootForThisLayout, bool inSubtreeLayout); |
| + void performLayout(bool inSubtreeLayout); |
| void scheduleOrPerformPostLayoutTasks(); |
| void performPostLayoutTasks(); |
| void invalidateTreeIfNeeded(); |
| - void gatherDebugLayoutRects(LayoutObject* layoutRoot); |
| - |
| DocumentLifecycle& lifecycle() const; |
| void contentRectangleForPaintInvalidation(const IntRect&); |
| @@ -719,7 +721,8 @@ private: |
| unsigned m_slowRepaintObjectCount; |
| bool m_hasPendingLayout; |
| - LayoutObject* m_layoutSubtreeRoot; |
| + HashSet<LayoutObject*> m_layoutSubtreeRoots; |
| + bool m_isSubtreeLayout; |
|
esprehn
2015/02/24 02:31:32
It seems like we should be able to get rid of this
|
| bool m_layoutSchedulingEnabled; |
| bool m_inPerformLayout; |