| Index: Source/core/layout/LayoutImage.h | 
| diff --git a/Source/core/layout/LayoutImage.h b/Source/core/layout/LayoutImage.h | 
| index 4f6be49c878c7778b5e064894cab6a1e799eb0d8..70cc25cb3784a510ad8e9b53dacb282c8856a1c5 100644 | 
| --- a/Source/core/layout/LayoutImage.h | 
| +++ b/Source/core/layout/LayoutImage.h | 
| @@ -84,6 +84,8 @@ protected: | 
|  | 
| virtual bool isOfType(LayoutObjectType type) const override { return type == LayoutObjectLayoutImage || LayoutReplaced::isOfType(type); } | 
|  | 
| +    virtual PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidationState&, const LayoutBoxModelObject&) override; | 
| + | 
| private: | 
| virtual bool isImage() const override { return true; } | 
|  | 
| @@ -106,6 +108,9 @@ private: | 
| // Update the size of the image to be rendered. Object-fit may cause this to be different from the CSS box's content rect. | 
| void updateInnerContentRect(); | 
|  | 
| +    // The given rect is in the local coordinate space of the LayoutImage. | 
| +    bool rectIntersectsVisibleViewport(const LayoutRect&); | 
| + | 
| // Text to display as long as the image isn't available. | 
| OwnPtr<LayoutImageResource> m_imageResource; | 
| bool m_didIncrementVisuallyNonEmptyPixelCount; | 
|  |