| Index: Source/core/layout/LayoutImage.h | 
| diff --git a/Source/core/layout/LayoutImage.h b/Source/core/layout/LayoutImage.h | 
| index 4f6be49c878c7778b5e064894cab6a1e799eb0d8..375869f7e0b124279b6ed28bb47249a185010153 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(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(); | 
|  | 
| +    // Returns true if the image intersects the viewport visible to the user. | 
| +    bool intersectsVisibleViewport(); | 
| + | 
| // Text to display as long as the image isn't available. | 
| OwnPtr<LayoutImageResource> m_imageResource; | 
| bool m_didIncrementVisuallyNonEmptyPixelCount; | 
|  |