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

Unified Diff: third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp

Issue 2480863002: DCHECK that paint properties are never null (Closed)
Patch Set: dcheckmate Created 4 years, 1 month 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/PaintChunker.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp b/third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp
index 33b273b60daf80594f2ac0e0269b02351be61adc..1a64e54946f81f11bef07606ec7f56855b48b2ab 100644
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp
@@ -8,6 +8,12 @@
namespace blink {
+#if DCHECK_IS_ON()
+static bool gNullPaintPropertyChecksDisabled = false;
+DisableNullPaintPropertyChecks::DisableNullPaintPropertyChecks()
+ : m_disabler(&gNullPaintPropertyChecksDisabled, true) {}
+#endif
+
PaintChunker::PaintChunker() {}
PaintChunker::~PaintChunker() {}
@@ -26,6 +32,19 @@ void PaintChunker::updateCurrentPaintChunkProperties(
bool PaintChunker::incrementDisplayItemIndex(const DisplayItem& item) {
DCHECK(RuntimeEnabledFeatures::slimmingPaintV2Enabled());
+#if DCHECK_IS_ON()
+ if (!gNullPaintPropertyChecksDisabled) {
+ // Property nodes should never be null because they should either be set to
+ // properties created by a LayoutObject/FrameView, or be set to a non-null
+ // root node. If these DCHECKs are hit we are missing a call to update the
+ // properties. See: ScopedPaintChunkProperties.
+ DCHECK(m_currentProperties.transform);
+ DCHECK(m_currentProperties.clip);
+ DCHECK(m_currentProperties.effect);
+ DCHECK(m_currentProperties.scroll);
+ }
+#endif
+
ItemBehavior behavior;
Optional<PaintChunk::Id> newChunkId;
if (DisplayItem::isForeignLayerType(item.getType())) {

Powered by Google App Engine
This is Rietveld 408576698