| 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 0b0fd6a81fb4cc998d1074b3a07aebee7af6a3a1..6ce3209bf396e44e4c80f27cb087251db698acdd 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutTableCell.h
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.h
|
| @@ -185,9 +185,8 @@
|
| int borderBefore() const override;
|
| int borderAfter() const override;
|
|
|
| - // Returns true if any collapsed borders related to this cell changed.
|
| - bool collectBorderValues(Vector<CollapsedBorderValue>&);
|
| - static void sortBorderValues(Vector<CollapsedBorderValue>&);
|
| + void collectBorderValues(LayoutTable::CollapsedBorderValues&);
|
| + static void sortBorderValues(LayoutTable::CollapsedBorderValues&);
|
|
|
| void layout() override;
|
|
|
| @@ -287,14 +286,38 @@
|
| const char* name() const override { return "LayoutTableCell"; }
|
|
|
| bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const override;
|
| -
|
| - struct CollapsedBorderValues {
|
| - CollapsedBorderValue startBorder;
|
| - CollapsedBorderValue endBorder;
|
| - CollapsedBorderValue beforeBorder;
|
| - CollapsedBorderValue afterBorder;
|
| + void invalidateDisplayItemClients(PaintInvalidationReason) const override;
|
| +
|
| + // TODO(wkorman): Consider renaming to more clearly differentiate from
|
| + // CollapsedBorderValue.
|
| + class CollapsedBorderValues : public DisplayItemClient {
|
| + public:
|
| + CollapsedBorderValues(const LayoutTable&,
|
| + const CollapsedBorderValue& startBorder,
|
| + const CollapsedBorderValue& endBorder,
|
| + const CollapsedBorderValue& beforeBorder,
|
| + const CollapsedBorderValue& afterBorder);
|
| +
|
| + const CollapsedBorderValue& startBorder() const { return m_startBorder; }
|
| + const CollapsedBorderValue& endBorder() const { return m_endBorder; }
|
| + const CollapsedBorderValue& beforeBorder() const { return m_beforeBorder; }
|
| + const CollapsedBorderValue& afterBorder() const { return m_afterBorder; }
|
| +
|
| + void setCollapsedBorderValues(const CollapsedBorderValues& other);
|
| +
|
| + // DisplayItemClient methods.
|
| + String debugName() const;
|
| + LayoutRect visualRect() const;
|
| +
|
| + private:
|
| + const LayoutTable& m_layoutTable;
|
| + CollapsedBorderValue m_startBorder;
|
| + CollapsedBorderValue m_endBorder;
|
| + CollapsedBorderValue m_beforeBorder;
|
| + CollapsedBorderValue m_afterBorder;
|
| };
|
|
|
| + bool usesTableAsAdditionalDisplayItemClient() const;
|
| const CollapsedBorderValues* collapsedBorderValues() const {
|
| return m_collapsedBorderValues.get();
|
| }
|
| @@ -305,8 +328,6 @@
|
|
|
| // A table cell's location is relative to its containing section.
|
| LayoutBox* locationContainer() const override { return section(); }
|
| -
|
| - LayoutRect localVisualRect() const override;
|
|
|
| protected:
|
| void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override;
|
| @@ -331,6 +352,7 @@
|
| void paintMask(const PaintInfo&, const LayoutPoint&) const override;
|
|
|
| LayoutSize offsetFromContainer(const LayoutObject*) const override;
|
| + LayoutRect localVisualRect() const override;
|
|
|
| int borderHalfLeft(bool outer) const;
|
| int borderHalfRight(bool outer) const;
|
| @@ -368,8 +390,8 @@
|
| // See also https://code.google.com/p/chromium/issues/detail?id=128227 for
|
| // some history.
|
| //
|
| - // Those functions are called before paint invalidation if the collapsed
|
| - // borders cache is invalidated on LayoutTable.
|
| + // Those functions are called when the cache (m_collapsedBorders) is
|
| + // invalidated on LayoutTable.
|
| CollapsedBorderValue computeCollapsedStartBorder(
|
| IncludeBorderColorOrNot = IncludeBorderColor) const;
|
| CollapsedBorderValue computeCollapsedEndBorder(
|
|
|