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

Unified Diff: Source/core/page/FrameView.h

Issue 18601002: Add infrastructure for partial layouts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address reviewer comments Created 7 years, 4 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
Index: Source/core/page/FrameView.h
diff --git a/Source/core/page/FrameView.h b/Source/core/page/FrameView.h
index 3e77cc62cb3586a92fcc12725744734b5cdf70fe..6f88d5ab7f696444e4badac638db7bbc86026e80 100644
--- a/Source/core/page/FrameView.h
+++ b/Source/core/page/FrameView.h
@@ -335,6 +335,11 @@ public:
// DEPRECATED: Use viewportConstrainedVisibleContentRect() instead.
IntSize scrollOffsetForFixedPosition() const;
+ bool shouldStopPartialLayout() const { return m_shouldStopPartialLayout; }
+ bool checkPartialLayoutComplete(RenderObject*);
+ void setStopLayoutAtRenderer(RenderObject* renderer) { m_stopLayoutAtRenderer = renderer; }
+ void resetPartialLayoutState() { m_stopLayoutAtRenderer = 0; m_shouldStopPartialLayout = false; }
+
protected:
virtual bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect);
virtual void scrollContentsSlowPath(const IntRect& updateRect);
@@ -420,6 +425,10 @@ private:
virtual AXObjectCache* axObjectCache() const;
void removeFromAXObjectCache();
+#ifndef NDEBUG
+ void checkPartialLayoutAllowed();
+#endif
+
static double s_currentFrameTimeStamp; // used for detecting decoded resource thrash in the cache
static bool s_inPaintContents;
@@ -528,8 +537,26 @@ private:
bool m_hasSoftwareFilters;
float m_visibleContentScaleFactor;
+
+ bool m_shouldStopPartialLayout;
+ RenderObject* m_stopLayoutAtRenderer;
};
+inline bool FrameView::checkPartialLayoutComplete(RenderObject* renderer)
+{
+ if (m_shouldStopPartialLayout)
+ return true;
+
+ if (renderer == m_stopLayoutAtRenderer) {
+#ifndef NDEBUG
+ checkPartialLayoutAllowed();
+#endif
+ m_shouldStopPartialLayout = true;
eseidel 2013/08/20 21:00:39 I think when you do this, you should also clear m_
pdr. 2013/08/26 05:50:40 Done.
+ return true;
+ }
+ return false;
+}
+
inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count)
{
if (m_isVisuallyNonEmpty)

Powered by Google App Engine
This is Rietveld 408576698