| 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);
|
| }
|
|
|