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

Unified Diff: third_party/WebKit/Source/core/layout/PaintInvalidationState.h

Issue 1774193002: New paint invalidation using paint property tree walk (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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: third_party/WebKit/Source/core/layout/PaintInvalidationState.h
diff --git a/third_party/WebKit/Source/core/layout/PaintInvalidationState.h b/third_party/WebKit/Source/core/layout/PaintInvalidationState.h
index 11f0a306aedea2ec64ddff721b32b704971d9eb6..7a5580067e24f3127fbc7bb10caccdfca1be6937 100644
--- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.h
+++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.h
@@ -5,6 +5,7 @@
#ifndef PaintInvalidationState_h
#define PaintInvalidationState_h
+#include "platform/RuntimeEnabledFeatures.h"
#include "platform/geometry/LayoutRect.h"
#include "platform/transforms/AffineTransform.h"
#include "wtf/Allocator.h"
@@ -31,13 +32,16 @@ class PaintInvalidationState {
DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
WTF_MAKE_NONCOPYABLE(PaintInvalidationState);
public:
- PaintInvalidationState(PaintInvalidationState& next, LayoutBoxModelObject& layoutObject, const LayoutBoxModelObject& paintInvalidationContainer);
+ // For RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled.
+ PaintInvalidationState(const PaintInvalidationState* parent, const LayoutObject&, const LayoutBoxModelObject& paintInvalidationContainer, const LayoutPoint& paintOffset);
+
+ PaintInvalidationState(PaintInvalidationState& next, const LayoutBoxModelObject& layoutObject, const LayoutBoxModelObject& paintInvalidationContainer);
PaintInvalidationState(PaintInvalidationState& next, const LayoutSVGModelObject& layoutObject);
PaintInvalidationState(const LayoutView& layoutView, Vector<LayoutObject*>& pendingDelayedPaintInvalidations)
: PaintInvalidationState(layoutView, pendingDelayedPaintInvalidations, nullptr) { }
PaintInvalidationState(const LayoutView& layoutView, PaintInvalidationState& ownerPaintInvalidationState)
- : PaintInvalidationState(layoutView, ownerPaintInvalidationState.m_pendingDelayedPaintInvalidations, &ownerPaintInvalidationState) { }
+ : PaintInvalidationState(layoutView, *ownerPaintInvalidationState.m_pendingDelayedPaintInvalidations, &ownerPaintInvalidationState) { }
const LayoutRect& clipRect() const { return m_clipRect; }
const LayoutSize& paintOffset() const { return m_paintOffset; }
@@ -60,8 +64,8 @@ public:
}
// Records |obj| as needing paint invalidation on the next frame. See the definition of PaintInvalidationDelayedFull for more details.
- void pushDelayedPaintInvalidationTarget(LayoutObject& obj) { m_pendingDelayedPaintInvalidations.append(&obj); }
- Vector<LayoutObject*>& pendingDelayedPaintInvalidationTargets() { return m_pendingDelayedPaintInvalidations; }
+ void pushDelayedPaintInvalidationTarget(LayoutObject& obj) { ASSERT(!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled()); m_pendingDelayedPaintInvalidations->append(&obj); }
+ Vector<LayoutObject*>& pendingDelayedPaintInvalidationTargets() { ASSERT(!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled()); return *m_pendingDelayedPaintInvalidations; }
// Disable view clipping and scroll offset adjustment for paint invalidation of FrameView scrollbars.
// TODO(wangxianzhu): Remove this when root-layer-scrolls launches.
@@ -99,7 +103,7 @@ private:
// with |m_paintOffset| yields the "final" offset.
AffineTransform m_svgTransform;
- Vector<LayoutObject*>& m_pendingDelayedPaintInvalidations;
+ Vector<LayoutObject*>* m_pendingDelayedPaintInvalidations;
PaintLayer& m_enclosingSelfPaintingLayer;
};

Powered by Google App Engine
This is Rietveld 408576698