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

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

Issue 2198113002: Reland of Fold compositing display items into contained drawings if the drawing is a singleton. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the issue and add an under-invalidation test. Created 4 years, 5 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.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp b/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp
index 3ab41c686c1216055d6ea59218eb117d4a4a73ee..0b793654dcdc1ae1fabdbbaa8368acca59c46e02 100644
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp
@@ -155,6 +155,13 @@ void PaintController::removeLastDisplayItem()
m_newPaintChunks.decrementDisplayItemIndex();
}
+const DisplayItem* PaintController::lastDisplayItem(unsigned offset)
+{
+ if (offset < m_newDisplayItemList.size())
+ return &m_newDisplayItemList[m_newDisplayItemList.size() - offset - 1];
+ return nullptr;
+}
+
void PaintController::processNewItem(DisplayItem& displayItem)
{
DCHECK(!m_constructionDisabled);
@@ -542,11 +549,6 @@ void PaintController::checkUnderInvalidation()
size_t oldItemIndex = m_underInvalidationCheckingBegin + m_skippedProbableUnderInvalidationCount;
const DisplayItem* oldItem = oldItemIndex < m_currentPaintArtifact.getDisplayItemList().size() ? &m_currentPaintArtifact.getDisplayItemList()[oldItemIndex] : nullptr;
- if (newItem.isCacheable() && !clientCacheIsValid(newItem.client())) {
- showUnderInvalidationError("under-invalidation of PaintLayer: invalidated in cached subsequence", newItem, oldItem);
- NOTREACHED();
- }
-
bool oldAndNewEqual = oldItem && newItem.equals(*oldItem);
if (!oldAndNewEqual) {
if (newItem.isBegin()) {

Powered by Google App Engine
This is Rietveld 408576698