Index: third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp b/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp |
index ec6345e49310ecb348b6f597d87528b18534af19..119f912fc2ea589732da496d6ce7430194103a33 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintArtifact.cpp |
@@ -28,14 +28,16 @@ void ComputeChunkBoundsAndOpaqueness(const DisplayItemList& display_items, |
if (!item.IsDrawing()) |
continue; |
const auto& drawing = static_cast<const DrawingDisplayItem&>(item); |
- if (drawing.GetPaintRecord() && drawing.KnownToBeOpaque()) { |
- // TODO(pdr): It may be too conservative to round in to the |
- // EnclosedIntRect. |
- SkIRect conservative_rounded_rect; |
- const SkRect& record_bounds = drawing.GetPaintRecordBounds(); |
- record_bounds.roundIn(&conservative_rounded_rect); |
- known_to_be_opaque_region.op(conservative_rounded_rect, |
- SkRegion::kUnion_Op); |
+ if (const PaintRecord* record = drawing.GetPaintRecord().get()) { |
+ if (drawing.KnownToBeOpaque()) { |
+ // TODO(pdr): It may be too conservative to round in to the |
+ // enclosedIntRect. |
+ SkIRect conservative_rounded_rect; |
+ const SkRect& cull_rect = record->cullRect(); |
+ cull_rect.roundIn(&conservative_rounded_rect); |
+ known_to_be_opaque_region.op(conservative_rounded_rect, |
+ SkRegion::kUnion_Op); |
+ } |
} |
} |
chunk.bounds = bounds; |