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

Unified Diff: Source/core/rendering/RenderView.cpp

Issue 506553004: Make the compositing assert disabler for paint invalidation more targeted. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix. Created 6 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
« no previous file with comments | « Source/core/rendering/RenderObject.cpp ('k') | Source/core/rendering/compositing/RenderLayerCompositor.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderView.cpp
diff --git a/Source/core/rendering/RenderView.cpp b/Source/core/rendering/RenderView.cpp
index de8d07d1456ce345bfe93fa1cd4eddafd00e8485..6f2ee39eb12e6c96b822a4226e6982519d25bde2 100644
--- a/Source/core/rendering/RenderView.cpp
+++ b/Source/core/rendering/RenderView.cpp
@@ -589,6 +589,10 @@ void RenderView::invalidatePaintForSelection() const
{
HashSet<RenderBlock*> processedBlocks;
+ // For querying RenderLayer::compositingState()
+ // FIXME: this may be wrong. crbug.com/407416
+ DisableCompositingQueryAsserts disabler;
+
RenderObject* end = rendererAfterPosition(m_selectionEnd, m_selectionEndPos);
for (RenderObject* o = m_selectionStart; o && o != end; o = o->nextInPreOrder()) {
if (!o->canBeSelectionLeaf() && o != m_selectionStart && o != m_selectionEnd)
@@ -742,6 +746,10 @@ void RenderView::setSelection(RenderObject* start, int startPos, RenderObject* e
if (!m_frameView || blockPaintInvalidationMode == PaintInvalidationNothing)
return;
+ // For querying RenderLayer::compositingState()
+ // FIXME: this is wrong, selection should not cause eager invalidation. crbug.com/407416
+ DisableCompositingQueryAsserts disabler;
+
// Have any of the old selected objects changed compared to the new selection?
for (SelectedObjectMap::iterator i = oldSelectedObjects.begin(); i != oldObjectsEnd; ++i) {
RenderObject* obj = i->key;
@@ -794,6 +802,10 @@ void RenderView::getSelection(RenderObject*& startRenderer, int& startOffset, Re
void RenderView::clearSelection()
{
+ // For querying RenderLayer::compositingState()
+ // This is correct, since destroying render objects needs to cause eager paint invalidations.
+ DisableCompositingQueryAsserts disabler;
+
layer()->invalidatePaintForBlockSelectionGaps();
setSelection(0, -1, 0, -1, PaintInvalidationNewMinusOld);
}
« no previous file with comments | « Source/core/rendering/RenderObject.cpp ('k') | Source/core/rendering/compositing/RenderLayerCompositor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698