| 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 310 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 321          object.containerForPaintInvalidation()); | 321          object.containerForPaintInvalidation()); | 
| 322   DCHECK(context.paintingLayer == object.paintingLayer()); | 322   DCHECK(context.paintingLayer == object.paintingLayer()); | 
| 323 | 323 | 
| 324   if (object.mayNeedPaintInvalidationSubtree()) | 324   if (object.mayNeedPaintInvalidationSubtree()) | 
| 325     context.forcedSubtreeInvalidationFlags |= | 325     context.forcedSubtreeInvalidationFlags |= | 
| 326         PaintInvalidatorContext::ForcedSubtreeInvalidationChecking; | 326         PaintInvalidatorContext::ForcedSubtreeInvalidationChecking; | 
| 327 | 327 | 
| 328   // TODO(crbug.com/637313): This is temporary before we support filters in | 328   // TODO(crbug.com/637313): This is temporary before we support filters in | 
| 329   // paint property tree. | 329   // paint property tree. | 
| 330   // TODO(crbug.com/648274): This is a workaround for multi-column contents. | 330   // TODO(crbug.com/648274): This is a workaround for multi-column contents. | 
| 331   if (object.hasFilterInducingProperty() || object.isLayoutFlowThread()) | 331   // TODO(crbug.com/672989): This is a workaround for out-of-flow positioned | 
|  | 332   // objects in multi-column spanner. | 
|  | 333   if (object.hasFilterInducingProperty() || object.isLayoutFlowThread() || | 
|  | 334       object.isColumnSpanAll()) { | 
| 332     context.forcedSubtreeInvalidationFlags |= | 335     context.forcedSubtreeInvalidationFlags |= | 
| 333         PaintInvalidatorContext::ForcedSubtreeSlowPathRect; | 336         PaintInvalidatorContext::ForcedSubtreeSlowPathRect; | 
|  | 337   } | 
| 334 | 338 | 
| 335   ObjectPaintInvalidator objectPaintInvalidator(object); | 339   ObjectPaintInvalidator objectPaintInvalidator(object); | 
| 336   context.oldVisualRect = object.previousVisualRect(); | 340   context.oldVisualRect = object.previousVisualRect(); | 
| 337   context.oldLocation = objectPaintInvalidator.previousLocationInBacking(); | 341   context.oldLocation = objectPaintInvalidator.previousLocationInBacking(); | 
| 338   context.newVisualRect = computeVisualRectInBacking(object, context); | 342   context.newVisualRect = computeVisualRectInBacking(object, context); | 
| 339   context.newLocation = computeLocationInBacking(object, context); | 343   context.newLocation = computeLocationInBacking(object, context); | 
| 340   context.oldPaintOffset = object.previousPaintOffset(); | 344   context.oldPaintOffset = object.previousPaintOffset(); | 
| 341   context.newPaintOffset = context.treeBuilderContext.current.paintOffset; | 345   context.newPaintOffset = context.treeBuilderContext.current.paintOffset; | 
| 342 | 346 | 
| 343   IntSize adjustment = object.scrollAdjustmentForPaintInvalidation( | 347   IntSize adjustment = object.scrollAdjustmentForPaintInvalidation( | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 438         PaintInvalidatorContext::ForcedSubtreeInvalidationRectUpdate; | 442         PaintInvalidatorContext::ForcedSubtreeInvalidationRectUpdate; | 
| 439 } | 443 } | 
| 440 | 444 | 
| 441 void PaintInvalidator::processPendingDelayedPaintInvalidations() { | 445 void PaintInvalidator::processPendingDelayedPaintInvalidations() { | 
| 442   for (auto target : m_pendingDelayedPaintInvalidations) | 446   for (auto target : m_pendingDelayedPaintInvalidations) | 
| 443     target->getMutableForPainting().setShouldDoFullPaintInvalidation( | 447     target->getMutableForPainting().setShouldDoFullPaintInvalidation( | 
| 444         PaintInvalidationDelayedFull); | 448         PaintInvalidationDelayedFull); | 
| 445 } | 449 } | 
| 446 | 450 | 
| 447 }  // namespace blink | 451 }  // namespace blink | 
| OLD | NEW | 
|---|