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

Unified Diff: third_party/WebKit/Source/platform/graphics/paint/PaintController.h

Issue 2080593002: Revert of Let FrameView track object paint invalidations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@TrackInvalidation
Patch Set: Created 4 years, 6 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/platform/graphics/paint/PaintController.h
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintController.h b/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
index 52d574e9d0c8cf57ceeed9c5b2327ad0ba91646c..4ff8560f367dbf4f83beb9a52aa614f4923ced5d 100644
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
@@ -55,6 +55,12 @@
void invalidateAll();
+ // Record when paint offsets change during paint.
+ void invalidatePaintOffset(const DisplayItemClient&);
+#if DCHECK_IS_ON()
+ bool paintOffsetWasInvalidated(const DisplayItemClient&) const;
+#endif
+
// These methods are called during painting.
// Provide a new set of paint chunk properties to apply to recorded display
@@ -139,6 +145,14 @@
#ifndef NDEBUG
void showDebugData() const;
+#endif
+
+ // This is called only if we are tracking paint invalidation for testing, or DCHECK_IS_ON()
+ // for error checking and debugging.
+ void displayItemClientWasInvalidated(const DisplayItemClient&);
+
+#if DCHECK_IS_ON()
+ bool hasInvalidations() { return !m_invalidations.isEmpty(); }
#endif
#if DCHECK_IS_ON()
@@ -193,6 +207,12 @@
DisplayItemList m_newDisplayItemList;
PaintChunker m_newPaintChunks;
+#if DCHECK_IS_ON()
+ // Set of clients which had paint offset changes since the last commit. This is used for
+ // ensuring paint offsets are only updated once and are the same in all phases.
+ HashSet<const DisplayItemClient*> m_clientsWithPaintOffsetInvalidations;
+#endif
+
// Allow display item construction to be disabled to isolate the costs of construction
// in performance metrics.
bool m_constructionDisabled;
@@ -209,6 +229,9 @@
int m_numCachedNewItems;
#if DCHECK_IS_ON()
+ // Record the debug names of invalidated clients for assertion and debugging.
+ Vector<String> m_invalidations;
+
// This is used to check duplicated ids during add(). We could also check
// during commitNewDisplayItems(), but checking during add() helps developer
// easily find where the duplicated ids are from.

Powered by Google App Engine
This is Rietveld 408576698