| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/paint/PaintInvalidator.h" | 5 #include "core/paint/PaintInvalidator.h" |
| 6 | 6 |
| 7 #include "core/editing/FrameSelection.h" | 7 #include "core/editing/FrameSelection.h" |
| 8 #include "core/frame/FrameView.h" | 8 #include "core/frame/FrameView.h" |
| 9 #include "core/frame/LocalFrame.h" | 9 #include "core/frame/LocalFrame.h" |
| 10 #include "core/frame/Settings.h" | 10 #include "core/frame/Settings.h" |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 context.paintInvalidationContainerForStackedContents = | 290 context.paintInvalidationContainerForStackedContents = |
| 291 toLayoutBoxModelObject(&object); | 291 toLayoutBoxModelObject(&object); |
| 292 } else if (object.isLayoutView()) { | 292 } else if (object.isLayoutView()) { |
| 293 // paintInvalidationContainerForStackedContents is only for stacked | 293 // paintInvalidationContainerForStackedContents is only for stacked |
| 294 // descendants in its own frame, because it doesn't establish stacking | 294 // descendants in its own frame, because it doesn't establish stacking |
| 295 // context for stacked contents in sub-frames. | 295 // context for stacked contents in sub-frames. |
| 296 // Contents stacked in the root stacking context in this frame should use | 296 // Contents stacked in the root stacking context in this frame should use |
| 297 // this frame's paintInvalidationContainer. | 297 // this frame's paintInvalidationContainer. |
| 298 context.paintInvalidationContainerForStackedContents = | 298 context.paintInvalidationContainerForStackedContents = |
| 299 context.paintInvalidationContainer; | 299 context.paintInvalidationContainer; |
| 300 } else if (object.isFloatingWithNonContainingBlockParent()) { | 300 } else if (object.isFloatingWithNonContainingBlockParent() || |
| 301 object.isColumnSpanAll()) { |
| 302 // In these cases, the object may belong to an ancestor of the current |
| 303 // paint invalidation container, in paint order. |
| 301 context.paintInvalidationContainer = | 304 context.paintInvalidationContainer = |
| 302 &object.containerForPaintInvalidation(); | 305 &object.containerForPaintInvalidation(); |
| 303 } else if (object.styleRef().isStacked() && | 306 } else if (object.styleRef().isStacked() && |
| 304 // This is to exclude some objects (e.g. LayoutText) inheriting | 307 // This is to exclude some objects (e.g. LayoutText) inheriting |
| 305 // stacked style from parent but aren't actually stacked. | 308 // stacked style from parent but aren't actually stacked. |
| 306 object.hasLayer() && | 309 object.hasLayer() && |
| 307 context.paintInvalidationContainer != | 310 context.paintInvalidationContainer != |
| 308 context.paintInvalidationContainerForStackedContents) { | 311 context.paintInvalidationContainerForStackedContents) { |
| 309 // The current object is stacked, so we should use | 312 // The current object is stacked, so we should use |
| 310 // m_paintInvalidationContainerForStackedContents as its paint invalidation | 313 // m_paintInvalidationContainerForStackedContents as its paint invalidation |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 } | 491 } |
| 489 } | 492 } |
| 490 | 493 |
| 491 void PaintInvalidator::processPendingDelayedPaintInvalidations() { | 494 void PaintInvalidator::processPendingDelayedPaintInvalidations() { |
| 492 for (auto target : m_pendingDelayedPaintInvalidations) | 495 for (auto target : m_pendingDelayedPaintInvalidations) |
| 493 target->getMutableForPainting().setShouldDoFullPaintInvalidation( | 496 target->getMutableForPainting().setShouldDoFullPaintInvalidation( |
| 494 PaintInvalidationDelayedFull); | 497 PaintInvalidationDelayedFull); |
| 495 } | 498 } |
| 496 | 499 |
| 497 } // namespace blink | 500 } // namespace blink |
| OLD | NEW |