| Index: third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h
 | 
| diff --git a/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h b/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h
 | 
| index ccfb00905fbeaaf192487c5359c394929dd4afdd..c5d897477880c790e8301cb342c2dd3e70a33658 100644
 | 
| --- a/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h
 | 
| +++ b/third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h
 | 
| @@ -8,32 +8,48 @@
 | 
|  #include "base/compiler_specific.h"
 | 
|  #include "platform/PlatformExport.h"
 | 
|  #include "platform/RuntimeEnabledFeatures.h"
 | 
| -#include "platform/geometry/FloatPoint.h"
 | 
| +#include "platform/geometry/FloatRect.h"
 | 
|  #include "platform/graphics/paint/DisplayItem.h"
 | 
|  #include "platform/graphics/paint/PaintRecord.h"
 | 
|  #include "third_party/skia/include/core/SkRefCnt.h"
 | 
|  
 | 
|  namespace blink {
 | 
|  
 | 
| +// DrawingDisplayItem contains recorded painting operations which can be
 | 
| +// replayed to produce a rastered output.
 | 
| +//
 | 
| +// This class has two notions of the bounds around the content that was recorded
 | 
| +// and will be produced by the item. The first is the |record_bounds| which
 | 
| +// describes the bounds of all content in the |record| in the space of the
 | 
| +// record. The second is the |visual_rect| which should describe the same thing,
 | 
| +// but takes into account transforms and clips that would apply to the
 | 
| +// PaintRecord, and is in the space of the DisplayItemList. This allows the
 | 
| +// visual_rect to be compared between DrawingDisplayItems, and to give bounds
 | 
| +// around what the user can actually see from the PaintRecord.
 | 
|  class PLATFORM_EXPORT DrawingDisplayItem final : public DisplayItem {
 | 
|   public:
 | 
|    DISABLE_CFI_PERF
 | 
|    DrawingDisplayItem(const DisplayItemClient& client,
 | 
|                       Type type,
 | 
|                       sk_sp<const PaintRecord> record,
 | 
| +                     const FloatRect& record_bounds,
 | 
|                       bool known_to_be_opaque = false)
 | 
|        : DisplayItem(client, type, sizeof(*this)),
 | 
|          record_(record && record->size() ? std::move(record) : nullptr),
 | 
| +        record_bounds_(record_bounds),
 | 
|          known_to_be_opaque_(known_to_be_opaque) {
 | 
|      DCHECK(IsDrawingType(type));
 | 
|    }
 | 
|  
 | 
|    void Replay(GraphicsContext&) const override;
 | 
| -  void AppendToWebDisplayItemList(const IntRect&,
 | 
| +  void AppendToWebDisplayItemList(const IntRect& visual_rect,
 | 
|                                    WebDisplayItemList*) const override;
 | 
|    bool DrawsContent() const override;
 | 
|  
 | 
|    const sk_sp<const PaintRecord>& GetPaintRecord() const { return record_; }
 | 
| +  // This rect is described in the coordinate space relative to the PaintRecord
 | 
| +  // whose bounds it describes.
 | 
| +  FloatRect GetPaintRecordBounds() const { return record_bounds_; }
 | 
|  
 | 
|    bool KnownToBeOpaque() const {
 | 
|      DCHECK(RuntimeEnabledFeatures::slimmingPaintV2Enabled());
 | 
| @@ -49,6 +65,7 @@ class PLATFORM_EXPORT DrawingDisplayItem final : public DisplayItem {
 | 
|    bool Equals(const DisplayItem& other) const final;
 | 
|  
 | 
|    sk_sp<const PaintRecord> record_;
 | 
| +  FloatRect record_bounds_;
 | 
|  
 | 
|    // True if there are no transparent areas. Only used for SlimmingPaintV2.
 | 
|    const bool known_to_be_opaque_;
 | 
| 
 |