Index: third_party/WebKit/Source/core/layout/LayoutTableCell.h |
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCell.h b/third_party/WebKit/Source/core/layout/LayoutTableCell.h |
index 8bef7580909d16d59fd2bbeef077200fba0a722a..c64227689e9b038702f3da937fd2d9cfe81b92b0 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutTableCell.h |
+++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.h |
@@ -304,10 +304,28 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { |
CollapsedBorderValue m_afterBorder; |
}; |
- bool usesTableAsAdditionalDisplayItemClient() const; |
+ class RowBackgroundDisplayItemClient : public DisplayItemClient { |
+ public: |
+ RowBackgroundDisplayItemClient(const LayoutTableRow&); |
+ |
+ // DisplayItemClient methods. |
+ String debugName() const; |
+ LayoutRect visualRect() const; |
+ |
+ private: |
+ const LayoutTableRow& m_layoutTableRow; |
+ }; |
+ |
+ bool usesCompositedCellDisplayItemClients() const; |
const CollapsedBorderValues* collapsedBorderValues() const { |
return m_collapsedBorderValues.get(); |
} |
+ const DisplayItemClient& backgroundDisplayItemClient() const { |
+ return m_rowBackgroundDisplayItemClient |
+ ? static_cast<const DisplayItemClient&>( |
+ *m_rowBackgroundDisplayItemClient) |
+ : *this; |
+ } |
LayoutRect debugRect() const override; |
@@ -316,6 +334,8 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { |
// A table cell's location is relative to its containing section. |
LayoutBox* locationContainer() const override { return section(); } |
+ void ensureIsReadyForPaintInvalidation() override; |
+ |
protected: |
void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; |
void computePreferredLogicalWidths() override; |
@@ -418,6 +438,8 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { |
int m_intrinsicPaddingAfter; |
std::unique_ptr<CollapsedBorderValues> m_collapsedBorderValues; |
+ std::unique_ptr<RowBackgroundDisplayItemClient> |
+ m_rowBackgroundDisplayItemClient; |
}; |
DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableCell, isTableCell()); |